SPI與nRF間的數(shù)據(jù)通信函數(shù)
u8 SPI_NRF_RW(u8 dat);
用于向NRF讀/寫一字節(jié)數(shù)據(jù)(只能一次寫入8-bit,這是nRF芯片決定的。SPI可以采用8-bit或16-bit完成數(shù)據(jù)傳輸) 該函數(shù)輸入值為SPI寫入的值,返回值為SPI讀取到的值
只完成寫入命令時,可以不管其返回值。而其返回值,為該寄存器的狀態(tài)值,可用于判斷該命令執(zhí)行是否成功。
而對于nRF24芯片寄存器數(shù)據(jù)的讀取,每8-bit的數(shù)據(jù)傳輸都要求master傳輸一個空命令后,nRF24才傳輸下一個數(shù)據(jù)。而函數(shù)返回值就為該數(shù)據(jù)值。
所謂的空命令,就是nRF24中的Define No Operation, might be usedto read status register
對該函數(shù)分析得
1. 無論是對nRF24的讀取和寫,都會有返回值。在寫時,返回值為狀態(tài)信息
2. 在數(shù)據(jù)讀取時,每一字節(jié)的數(shù)據(jù)都是在一個輸入命令后才能完成。 u8 SPI_NRF_ReadReg(u8 reg );
從nRF特定的寄存器讀出8bit數(shù)據(jù)
u8 SPI_NRF_WriteReg(u8 reg,u8 dat);