用28335串口B,在接收100个协议包的,时候偶尔会出现接收到几十个时候突然不进入接收中断。我是使用一个IO在接收中断翻转,用示波器两个通道分别接外部发送协议数据包和IO的中断翻转情况,对比发送数据包的到来和IO的翻转,发现接收到几十个数据包,IO突然不翻转,也即不进入中断。到下一个数据包到来,又正常进入中断了。很奇怪,屏蔽了其他代码。只跑这个中断也是一样。
可以确认没有进入 串口错误中断,用过其他IO指示
神奇了,串口用了发送和接收两个中断,和整个环境使用的UCOS ii,同时在获取串口数据等超时使用定时器1有关系吗?TI似乎不允许在跑系统时使用定时器1 和定时器2,但是使用定时器1 的定时时间又是对的。
有没有哪位大神有遇到?
Jun Zhang10:
是否是串口接收中断被阻塞了?查看一下程序中使用到的中断优先级及中断服务程序运行时间吧。
用28335串口B,在接收100个协议包的,时候偶尔会出现接收到几十个时候突然不进入接收中断。我是使用一个IO在接收中断翻转,用示波器两个通道分别接外部发送协议数据包和IO的中断翻转情况,对比发送数据包的到来和IO的翻转,发现接收到几十个数据包,IO突然不翻转,也即不进入中断。到下一个数据包到来,又正常进入中断了。很奇怪,屏蔽了其他代码。只跑这个中断也是一样。
可以确认没有进入 串口错误中断,用过其他IO指示
神奇了,串口用了发送和接收两个中断,和整个环境使用的UCOS ii,同时在获取串口数据等超时使用定时器1有关系吗?TI似乎不允许在跑系统时使用定时器1 和定时器2,但是使用定时器1 的定时时间又是对的。
有没有哪位大神有遇到?
mangui zhang:
最好用收到什么发送什么 看看
在中断函数中发送收到的数
遇到过只进入一次中断 的 最后发现时外设的时钟没有使能
但是可以进入一次中断