SPI出错的问题——中断嵌套引起的

   一、问题

       一般SPI底层写完,如果能运行起来代码是不会出错的。但当出现多中断嵌套时,就有可能会出现SPI操作错误的地址造成出错。

   二、现象

        博主在用PIC开发时遇到这样的情况:

        在低优先级中断里运行SPI读函数去读与单片机通信芯片的寄存器的值,恰巧地址是16位的,在SPI访问地址时得先写进高地址,然后再写进低地址访问。如果在写入高地址后,刚好其它中断优先级较高的中断切出去去执行SPI读写操作,这时候在切回来读低地址时,就相当于你操作的是低地址的内容,而不是高地址+低地址整块完整地址。就会造成前面写入的与后面读出来的不一现象。

 

三、结论

       总结一句就是在多中断嵌套,存在中断优先级现象时,且中断里都有操作SPI时要意识到地址会出错的问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值