在3568端UART端口接入可AT指令配置的模块后,直接通过命令行进行AT指令配置。 正常情况下使用命令 cat /dev/ttyS* & 接收模块返回信息,使用echo "AT+AT" > /dev/ttyS* 给模块发送AT命令 现象:使用cat /dev/ttyS*后,使用 echo "AT+AT" > /dev/ttyS* 命令,串口一直返回ERROR打印信息。 原因:Linux的UART控制器的回显功能被打开,可参考调试串口理解,在超级终端输入一个字符给调试串口,如果没有回显功能,那么在超级终端是看不到这个字符的 这种现象和AT模块相关,AT模块接收的AT指令为特殊的格式,有些模块的处理方式是:如果格式不正确,则丢弃。而有的模块是:如果格式不正确则返回ERROR 如果回显功能打开 第一次执行 echo "AT+AT" > /dev/ttyS* 命令 时 由 3568直接输出给串口,AT模块执行正确,反回OK,因为回显功能,串口又输出了OK,此时的OK并不是AT指令格式,模块返回ERROR,因为回显,模块收到ERROR,如此进入ERROR循环。 解决方法以及可能用的到的命令: 解决方法:stty -echo -F /dev/ttyS* 115200 //关闭串口回显标志位,并且设置ttyS*的串口波特率为115200 关于echo 命令:默认echo 发送字符串时 自动补齐 \r\n , 若使用 echo -e " *** \r\n"不生效,原因为echo -e 遇到\n 自动在\n之前补齐\r,所以命令变为 *** \r\r\n ,如此格式一般不被AT模块认可,需注意。 在Linux开发板上使用AT模块,只要UART端的串口波特率一致,使用 cat 和 echo 命令即可完成配置。 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 15:28
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.