1) spi的错位问题一般是由于spi总线上还有数据,数据又开始填入缓冲器导致的。那么解决起来就需要按照手册上的,先要检查bsy位,确保总线已经不在忙碌了,总线上不忙碌了再进行下一步操作就不会出现错位的现象。2)确保bsy位之后,即使出现错误,也是位错误。位错误有两种可能,一是主从机启动不同时,二是由于缓冲的DR(数据)没有及时取走,导致的数据积压。前一种需要用NSS来保证主机先启动,然后从机启动。 后一种在发送之前,先将数据缓冲的DR读出(就是清空缓冲器)。3)最终的解决方式,必定是环形缓冲+DMA处理方式。快速,无无码!!!!!o(^▽^)o ...............当然主从机的启动时序也可以在一定程度上减少错位
|