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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2650|回復: 0
打印 上一主題 下一主題
收起左側

STM32 SPI讀寫函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:104126 發表于 2016-1-23 00:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//SPIx 讀寫一個字節
//TxData:要寫入的字節
//返回值:讀取到的字節
u8 SPIx_ReadWriteByte(u8 TxData)
{                                                           
        while((SPI1->SR&(1<<1))==0);         
        SPI1->DR=TxData;          //發送一個byte        
        while((SPI1->SR&(1<<0))==0);                                                         
        returnSPI1->DR;         //返回收到的數據                                 
}


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


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

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产a一区二区 | 成人久久久久久久久 | 手机av免费在线 | 精品无码久久久久久国产 | 精品国产成人 | 91在线资源| 欧美一区永久视频免费观看 | 欧美一区二区三区久久精品 | 免费看黄视频网站 | 一区二区在线视频 | 欧美一区二区三区电影 | 99这里只有精品 | 日韩精品国产精品 | 亚洲视频在线观看一区二区三区 | 欧美一区二区三区在线 | 中文字幕一区二区三区日韩精品 | 久久精品 | 精品欧美一区二区三区免费观看 | 国内精品久久久久 | 日韩欧美国产电影 | 久久亚洲欧美日韩精品专区 | 国产精品视频中文字幕 | 亚洲欧美视频一区 | 亚州成人| 久久精品国产一区二区三区 | 国产精品久久久久久238 | 欧美一二三四成人免费视频 | 免费观看羞羞视频网站 | 日韩欧美在线播放 | a在线免费观看视频 | 欧美精品一级 | 日屁网站| 亚洲一区 | 国产精品99久久久久久动医院 | 男女av| 九九热在线免费视频 | 国产精品国产三级国产aⅴ原创 | 日韩精品av一区二区三区 | 欧美猛交| 亚洲成av人片在线观看 | 国产成人免费视频网站高清观看视频 |