我在用stm32接受手机短信,模块是sim900,使用了
if(strstr(usart3_rbuf,"+CMTI")==NULL) 函数判断有没有新的短信到来。
我用串口监视软件可以看到如果新消息过来,模块会发出一帧数据,例如+CMTI,SM,1;
我单片机接受的时候如果不使用if(strstr(usart3_rbuf,"+CMTI")==NULL) 这句可以看到能接收到正确的数据
+CMTI,SM,1;但是我加上那句判断,我的接受缓存usart3_rbuf里面就成了+CMTI;少几个后面的字符。
更奇怪的是,如果这句判断我放在按键触发里,就是按键一次才判断,则没有问题,缓存usart3_rbuf里面还是
+CMTI,SM,1;
我人为等接受完一段时间再判断也不行。我都抑郁;了,
有人知道为什么么。 |