m451 使用spi master mode loopBACK 問題

jakeyhuang |浏览1054次
收藏|2019/03/31 23:11

我用了C:\Customer_DVD_Cortex_20181015\DVD_Cortex\BSP Library\M451SeriesBSP_CMSIS\M451SeriesBSP_v3.01.001\SampleCode\StdDriver\SPI_Loopback  裡面的例子來做實驗發現spi寫出值和讀回值不一樣,用ice debug 看.發現RX BUF的值明明正確,讀進來到MEMORY卻是錯誤,再進一步比對發現每一次前面的3個MEMORY位置的值都是0X00000000,第4個位置才是原來第一次SPI_WRITE_TX(SPI2, g_au32SourceData[u32DataCount])讀到的值,第5個位置才是原來第二次SPI_WRITE_TX(SPI2, g_au32SourceData[u32DataCount])讀到的值,依此往下;想問是不是讀到了SPI FIFO 4層位置的資料.能不能直接讀出RXBUF的值?而不是讀到第4次後才能讀到,我試過SPI0,SPI1,SPI2結果都一樣.我主要是想要從外部的IC 利用SPI讀進資料後經過計算再直接轉出到另一顆IC上面,所以需要及時運算,不能等到第4個.

PS.M451和M451ML我測試的結果都一樣.


满意回答

2022/09/06 14:04

SPI是双向传输,Master在发送的同时,也接收数据进来

应该是你送了4笔command 后,才开始读回资料,

在第4笔发生后,你必须清spi rx fifo,才是你开始读回来的资料

admin

其他回答(0)
0人关注该问题
+1
 加载中...