PIC16单片机的中断问题 5
PIC16的中断都只有一个入口.也没有优先级别,我要求串口随时接收数据,但是恰好处理定时器中断时串口数据来了,是不是就接收不到了呢?或者是接收到的不是完整的数据了呢,该怎...
PIC16的中断都只有一个入口.也没有优先级别,我要求串口随时接收数据,但是恰好处理定时器中断时串口数据来了,是不是就接收不到了呢?或者是接收到的不是完整的数据了呢,该怎么解决这样的问题啊?急急急,只有5分了全悬出来了
展开
2个回答
展开全部
可以接收的,不过要在定时中断处理完成之后才能处理。解决的办法就是将中断处理函数时间缩短,尽量将一些复杂的运算放到主函数中处理,还有就是将波特率设置低一点,这样接收一个数据的时间就会长些。另外就是PIC16的串口是双缓冲接收/发送的,接收的时候RCREG寄存器可以存放两个接收到的数据,同时接收移位寄存器RSR可以处于第3个数据的接收状态,只要在第3个数据接收完成前读取RCREG就不会发生溢出。可以在接收中断时判断接收溢出标志位OERR是否置位,如果溢出,则先清除该位(连续读两次RCREG,并置位CREN),再通知主机重复发送数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询