关于单片机串口中断程序

关于单片机串口中断程序,第1张

当MCU接收到GPS发来的一个字节时触发中断,进入中断程序,(在进入中断程序时串口照样接收,中断程序是往串口缓存区读的数据,并且读数据时相当快的,永远不用担心还在读的时候数据被新来的给覆盖了)将该接收的字节提取出放在一个缓冲区内,缓冲区是你自己定义的一个数组或字符串,谁你喜好,如你所述GPS是每隔1秒发送一次数据的,此时你可以在主程序中设计当05秒没有接收到GPS所发的数据时,就将缓冲区内的数据读出处理,并清空缓冲区,这样其实中断程序只管接收数据,主函数只管处理数据,两不相冲。

1第0号串口和接收GPS的串口应该不是同一个吧,UTC的分信息会丢可能是串口0的Usart0_PutString("$GPRMC")函数和GPS的接收串口在时序上出现冲突了。如果GPS的串口使用中断接收应该不会存在这个问题的。

2可以去查看一下GPS的数据包格式,不同的前导码(“GPRMC”、或者其他)对应的数据包格式是不同的,“GPRMC”显示年月日时分秒的数据包是有校验的,你查看一下是不是串口截断数据了

以上就是关于关于单片机串口中断程序全部的内容,包括:关于单片机串口中断程序、单片机C语言串口接收GPS信息,发生信息丢失、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9330544.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存