嵌入式开发:中断优先级的重要性

                  TI的LM3S1607,一开始中断优先级没有设置,采用默认值[所有优先级相同],则就是中断不可嵌套。

                  出现了UART通信有时会丢失数据的问题,一开始以为是硬件干扰导致的。。。。

                  UART的接收缓冲队列FIFO长度设置为1,即接收到字符后就触发中断。因为外部通信命令一般为多个字节连续发,所以如果UART中断来不及处理,很可能出现FIFO被覆盖的危险。

                 

                 那么就会发生以下问题:

                 VD中断请求--->VD中断处理----->VD中断返回

                     UART中断请求---->挂起

                             UART中断请求--->挂起

                 如果此时连续有字节发送过来,则UART中的FIFO就会被覆盖,命令字节就会丢失。


                 所以UART中断优先级一定要比其他中断优先级高。。。。。

                

               系统开发中,由于任务的重要性和及时性不同,必须定义好不同的优先级。否则就会出现这种BUG。

          

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值