我正在开发嵌入式 Linux(通过 buildroot 构建,不是我创建的,但我可以访问)。 我正在通过 USB 连接蜂窝调制解调器,这会创建 ttyACM0(以及更多的 ttyACMx)。 我正在使用 pppd 来运行调制解调器 - 它工作正常。
我想做的是通过询问“AT+CIMI”并解析响应中的网络号来更新聊天脚本中的 APN(在运行 pppd 之前)。
我试过了 atinout ,一个非常小的 c 语言程序,它可以在我的笔记本电脑 (Ubuntu) 和另一个嵌入式 Linux 上运行,但在这个平台上失败。它使用 fopen()。 我试图找出问题所在,发现 fopen() 失败并显示错误号 5(输入/输出错误)。 我改为 open() 并且它起作用了!!!我可以发送 AT 请求并查看收到的响应。
那么 - 这是怎么回事?
*** PS -/dev 挂载为 tmpfs,它运行 busybox mdev(与 udev 的 devtmpfs 相对,在我的笔记本电脑上)。
谢谢。
最佳答案
最终我使用了带有 Qt 框架的串行端口 API(它是一个 Qt 应用程序)。 它使用基本的 open()/write() API。
关于linux - fopen() 在/dev/ttyACM0 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211646/