久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32 SPI讀寫函數 [打印本頁]

作者: 51heisex    時間: 2016-1-23 00:12
標題: STM32 SPI讀寫函數
//SPIx 讀寫一個字節(jié)
//TxData:要寫入的字節(jié)
//返回值:讀取到的字節(jié)
u8 SPIx_ReadWriteByte(u8 TxData)
{                                                           
        while((SPI1->SR&(1<<1))==0);         
        SPI1->DR=TxData;          //發(fā)送一個byte        
        while((SPI1->SR&(1<<0))==0);                                                         
        returnSPI1->DR;         //返回收到的數據                                 
}


對于這樣的讀寫函數曾有這樣的疑惑,讀就是讀寫就寫為什么要放一起呢。這樣是不是很麻煩,查詢相關資料有如下解答。


a)寫一個字節(jié):
​while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) ==RESET);
//確保發(fā)生前Buffer為空,也就是說上一次已經發(fā)生完成
​SPI_I2S_SendData(SPI1,Data);
//​往寄存器中寫入一個字節(jié)
​while (SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE) == RESET);
//等待接受到一個字節(jié)數據,
為什么要這么做?加這一句的原因是為了確保這個字節(jié)已經發(fā)送出去因為發(fā)生和接受是并行同步進行,那就是說你發(fā)生出去一個字節(jié)意味著你收到一個字節(jié)。所以這樣判斷完全沒有問題,再說必要性,如果你不加這句你就會容易犯過早拉高CS信號的錯誤(相當于檢測到收到數據,那么說明數據一定發(fā)完了),你想想如果在SPI_I2S_SendData(SPI1,Data)后面立即拉高CS是什么后果。SPI_I2S_ReceiveData(SPI1);//都會接收到的數據,看起來沒什么必要,但以用stm32的經驗推薦這樣做,也許會有意想不到的收獲。
​SPI_Writebyte(u8data)
​{
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) ==RESET);
SPI_I2S_SendData(SPI1,Data);
​while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) ==RESET);
​SPI_I2S_ReceiveData(SPI1);
}
b)​讀一個字節(jié):讀的時候要注意一個問題,因為從模式是沒法提供時鐘的,所以主模式下必須要在接收的同時提供時鐘。辦法就是發(fā)送一個字節(jié)來實現,因為還是上面說的,發(fā)送一個字節(jié)就意味著收到一個字節(jié),代碼和寫完全一樣,只要把讀出來的字節(jié)保存即可。u8SPI_Readbyte(u8data){ while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) ==RESET);SPI_I2S_SendData(SPI1,Data); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) ==RESET); returnSPI_I2S_ReceiveData(SPI1); }






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美999| 欧美日韩国产一区二区 | 日本精品在线视频 | 精品少妇 | 国产成人精| 欧美一区二区三区在线视频 | 人人草在线视频 | 国产三级午夜理伦三级 | www中文字幕| 欧美精品日韩 | 日韩欧美精品一区二区 | 日韩欧美高清 | 欧美激情网址 | 中文字幕免费视频 | 亚洲欧美日韩综合 | 青青草久久 | 亚洲福利视频一区 | av天天操 | 日韩精品久久久久久免费 | 国产精品一区二区性色av | 黄色片www| 黄色网址在线播放 | 欧美日韩高清在线 | 午夜激情在线观看 | 欧美一区二区三区在线视频 | 亚洲精品少妇 | 久草手机在线视频 | 极品白嫩少妇无套内谢 | 日韩欧美在线视频观看 | 午夜在线 | 荤话粗俗h高h重口 | 国产在线欧美 | 91精品国产99久久久久久红楼 | 国产伦精品一区二区三区视频黑人 | 成人在线国产 | 久久夜色精品国产欧美乱极品 | 亚洲第一综合 | 93久久精品日日躁夜夜躁欧美 | 综合在线视频 | 亚洲伦理精品 | 久久机热 |