关于Arduino的串口中断

关于Arduino的串口中断,第1张

如果想用真正的串口中断衫裂,你需要去学习avr芯片相关知识才可以(Arduino使用链链的就是avr芯片 ATmega系列),因为绝大多数东西被Arduino隐藏了,你看不到也用不了,甚至会棚塌孙坏,比如强行手动使用串口中断会导致所有Serial函数无法使用等等。

你这说的过于笼统了,得看你想知道的具体串口中断问题。单片机串口主要是用于接收或者发送的。想明白这个,先说一下中断这个概念,举个例子,比如你今天工作需要一直编写程序,可是到中午的时候你肚子饿了,就虚衫需要吃饭,这就好比是中断请求,虽然你此时正在编写程序进行工作,但是饥饿需要及时解决,于是你就先去吃饭了,吃饭回来之后你需要继续编程工作,于是又回到正常工作中,这大概就说明了中断的所有概念。单片机串口中断,例如用串口接收GPS模块的数据(这一般都是串口相连的),单片机可能需要一直的工作,不管是干什么,但是你最需要的是接收GPS数据前誉锋并进行处理,于是当接收到GPS信号时,就会产慧晌生串口中断,然后进入中断接收GPS数据,存储在串口寄存器当中,当接收完之后关掉中断,单片机继续其他工作,当又有GPS数据需要接收时,便又产生串口中断进行接收处理。这个大概就是单片机串口中断的过程,不知有所了解没

每次进中断你都回仿拆发Rbuf[]数组(4个字节),更要命的是你居然还敢在中断函数里面while(TI==0)。

你可以看看在串行中断函数里面浪费了多少时间。

51的此拍串口只有一个移位寄存器。第一次进入中断后你读出了1个字节,然后移位寄存器里面又收到备扒枣1个字节,剩下的再来就被丢掉了……因为老兄你还在第一次进入的中断里面悠哉悠哉地耍呢。


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

原文地址: https://outofmemory.cn/yw/12515626.html

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

发表评论

登录后才能评论

评论列表(0条)

保存