中易网

28335用SPI接收的数据总是发送的数据,怎么回事儿?

答案:1  悬赏:0  
解决时间 2021-01-16 13:22
  • 提问者网友:骑士
  • 2021-01-15 21:26
28335用SPI接收的数据总是发送的数据,怎么回事儿?
最佳答案
  • 二级知识专家网友:封刀令
  • 2021-01-15 21:45
1 注意数据写入SPITXBUF时是左对齐,而读入SPIRXBUF是右对齐。这个问题在16位字长时不突出,但是在16位以下数据字长时要特别注意,一般方法是做左移运算。
2 数据丢失问题:在开启SPIFIFO增强功能时,不能根据SpiaRegs.SPISTS.bit.BUFFULL_FLAG来暂停发送数据。因为此时的TXBUF是从TXFIFO中得数据。程序中写入TXBUF,只是写入发送缓冲器即FIFO。根据先进先出原理,你源源不断地向TXBUF写数据,则FIFO里总是保存你最后写入的数据,而不会将SpiaRegs.SPISTS.bit.BUFFULL_FLAG位置1,所以会发现数据丢失。正确的方法应该判断SPITXFIFO中的字的个数。追问您的意思是我现在的问题就是写入缓冲器TXBUF之后还没有发送出去,就被我从RXBUF里面读取出来了,是这个意思吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息