2019-07-28 18:37发布
henryetchou 发表于 2015-1-23 22:13 俺認為您的問題不在硬件問題,而可能再UART1BUF裡的字串函數判斷,如果您想糾錯, 俺有一個有效直捷的方法 ...
最多设置5个标签!
俺有一個有效直捷的方法來兩分....
您把GSM TX串口接上回電腦的RS-232 RX,包率設置正確,用終端機或是串口助手監看,
肯定第二個指令是否有ACK回覆??回覆得是否真是OK??
假如有回覆,那就是strstr()程序判斷不嚴謹.如果沒回覆那麼就可以判定是發送指令的問題.
此時再把單片機串口TX接回電腦RX確認一下串口打印字串是否是對的??
另~GSM模塊除了包率設置外,有時會有校驗碼(Parity)停止字節(Stop bit)的設置差異,
確認單片機的UART串口這些設置都是謀合的....
P.S.俺是台灣來的,如有用語差異鬧笑話,請多海涵。
好谦虚啊。
我觉得也是单片机和模块间的串口匹配问题。
具体能否确认是不是这个问题,还需要楼主进一步测试。
{
UART_Clear_BUFF();
led(2);
//注意:此处必须为RNRN!!!
UART_PutStr(0,"AT ");
}
这两个类似的循环会出大问题的:
1.只要判断没有“OK”就清接收缓存,如果我刚收到一个'O',后面的字节还没有收到时,缓存就被冲刷了。
2.只要判断没有“OK”,就一直重发相应AT命令。你这是在测试GSM模块的串口接收缓冲区有多大吧!!!!!!
一周热门 更多>