SPIDataPut发送一个字节失败问题
时间:10-02
整理:3721RD
点击:
SPIDataPut(unsigned long ulBase, unsigned long ulData),这个函数发送的类型是unsigned long,当我发送一个字节 SPIDataPut(GSPI_BASE,0x21)后,再次发送SPIDataPut(GSPI_BASE,0x0B)就会一直失败,卡在 while(!(HWREG(ulBase + MCSPI_O_CH0STAT)&MCSPI_CH0STAT_TXS))里面,猜测是因为类型不同,所以FIFO一直非空,但是我要怎么发送一个字节呢
如果需要发送多个字节,请使用SPITransfer函数。
关于SPIDataPut和SPITransfer区别请看这边: https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/t/559854
你好,我明白两个函数的区别,但是我的外设(ADS1198)是需要先发送字节(操作符),延时后再发送后面的,所以我是用SPIDataPut先发送一个字节,延时,再调用SPITransfer,但这样发送存在问题,就是似乎SPIDataPut发送了一个自己设定的字节,还有一个0,这样的后果就是SPITransfer发送后相当于发送的是0加上我的字节数减1个字节。
还有一个问题就是SPIDataPut发送了一个自己设定的字节后,延时,再用SPIDataPut发送会不成功。会一直卡在while(!(HWREG(ulBase + MCSPI_O_CH0STAT)&MCSPI_CH0STAT_TXS))