![STM32 I2C總線通信與SPI總線通信專題講解_第1頁](http://file4.renrendoc.com/view/9c4605ed74c84c6a197f53e09906d42b/9c4605ed74c84c6a197f53e09906d42b1.gif)
![STM32 I2C總線通信與SPI總線通信專題講解_第2頁](http://file4.renrendoc.com/view/9c4605ed74c84c6a197f53e09906d42b/9c4605ed74c84c6a197f53e09906d42b2.gif)
![STM32 I2C總線通信與SPI總線通信專題講解_第3頁](http://file4.renrendoc.com/view/9c4605ed74c84c6a197f53e09906d42b/9c4605ed74c84c6a197f53e09906d42b3.gif)
![STM32 I2C總線通信與SPI總線通信專題講解_第4頁](http://file4.renrendoc.com/view/9c4605ed74c84c6a197f53e09906d42b/9c4605ed74c84c6a197f53e09906d42b4.gif)
![STM32 I2C總線通信與SPI總線通信專題講解_第5頁](http://file4.renrendoc.com/view/9c4605ed74c84c6a197f53e09906d42b/9c4605ed74c84c6a197f53e09906d42b5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁STM32I2C總線通信與SPI總線通信專題講解
總線介紹:(I2C)(In(te)r-IntegratedCircuit)總線(也稱I(IC)或I2C)是由PHILIPS公司開發(fā)的兩線式串行總線(單雙工),用于連接微(控制器)及其外圍設(shè)備,在這兩根線上可以掛很多設(shè)備,同一時(shí)刻只能有一個(gè)節(jié)點(diǎn)處于主機(jī)模式,其他節(jié)點(diǎn)處于從機(jī)模式,總線上數(shù)據(jù)的傳送都由主機(jī)發(fā)起。I2C總線沒有片選(信號(hào))線,所以需要通過協(xié)議來找到對(duì)應(yīng)操作的(芯片)。是微(電子)(通信)控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有(接口)線少,控制方式簡(jiǎn)單,期間封裝形式少,通信速率高等優(yōu)點(diǎn)。總線特征:1.兩條總線線路:一條串行數(shù)據(jù)(SD)A,一條串行(時(shí)鐘)線SCL(主從設(shè)備使用同一時(shí)鐘,屬于同步通信)來完成數(shù)據(jù)的傳輸及外圍器件的擴(kuò)展
2.I2C總線上的每一個(gè)設(shè)備都可以作為主設(shè)備或者從設(shè)備,而且每一個(gè)設(shè)備都會(huì)對(duì)應(yīng)一個(gè)唯一的地址,通常是7位,有時(shí)候是10位
3.I2C總線數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。在開發(fā)配置的時(shí)候,最好檢查從設(shè)備的傳輸速率從而對(duì)主設(shè)備(一般是(MCU))進(jìn)行相應(yīng)的配置。一般通過I2C總線接口可(編程)時(shí)鐘來實(shí)現(xiàn)傳輸速率的調(diào)整,同時(shí)也跟所接的上拉(電阻)的阻值有關(guān)。
4.I2C總線上的主設(shè)備與從設(shè)備之間以字節(jié)(8位)為單位進(jìn)行單雙工的數(shù)據(jù)傳輸。
拓?fù)浣Y(jié)構(gòu)——總線型I2C總線在物理連接上分別由SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)及上拉電阻組成,SCL由主機(jī)發(fā)出,SCL越快,通訊速率越快。通信原理是通過對(duì)SCL和SDA線高低電平時(shí)序的控制來產(chǎn)生I2C總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)的傳遞。在總線空閑狀態(tài)時(shí),這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。
//w25x16.c#include"w25x16.h"externSPI_HandleTypeDefhspi1;/*讀寫一個(gè)字節(jié)函數(shù),因?yàn)镾PI讀和寫同時(shí)完成*//*發(fā)送數(shù)據(jù)一定會(huì)接收到一個(gè)數(shù)據(jù)*/uint8_tsFLASH_SendByte(uint8_tbyte){uint8_tTX_DATA=byte;uint8_tRX_DATA=0;HAL_SPI_TransmitReceive(returnRX_DATA;}/*等待擦除或者寫數(shù)據(jù)完成*/voidsFLASH_W(ai)(tF)orEnd(void){uint8_tsr_value=0;sFLASH_CS_LOW();sFLASH_SendByte(sFLASH_CMD_RDSR);//讀S0的值,為1表示忙碌,為0表示停止do{//發(fā)一個(gè)空字節(jié),得到S0的值sr_value=sFLASH_SendByte(sFLASH_DUMMY_BYTE);}while(sr_valuesFLASH_CS_HIGH();}voidsFLASH_WriteEnable(void){sFLASH_CS_LOW();sFLASH_SendByte(sFLASH_CMD_WREN);sFLASH_CS_HIGH();}/*讀設(shè)備ID*/uint16_tsFLASH_ReadID(void){uint16_tFLASH_ID;uint8_ttemp0,temp1;sFLASH_CS_LOW();sFLASH_SendByte(W25X_ManufactDeviceID);//讀設(shè)備指令后要發(fā)24位地址,所以要發(fā)三次sFLASH_SendByte(sFLASH_DUMMY_BYTE);sFLASH_SendByte(sFLASH_DUMMY_BYTE);sFLASH_SendByte(sFLASH_DUMMY_BYTE);//制造商IDtemp0=sFLASH_SendByte(sFLASH_DUMMY_BYTE);//設(shè)備商IDtemp1=sFLASH_SendByte(sFLASH_DUMMY_BYTE);sFLASH_CS_HIGH();FLASH_ID=(temp0
>16)sFLASH_SendByte((SectorAddr>
>8)//傳送中8位sFLASH_SendByte((SectorAddr>
>0)//傳送低8位sFLASH_CS_HIGH();/*讀狀態(tài)寄存器,等待擦除完成*/sFLASH_WaitForEnd();}//讀數(shù)據(jù)//讀命令和讀地址發(fā)送后,芯片內(nèi)部會(huì)自動(dòng)不斷遞增讀數(shù)據(jù)voidsFLASH_ReadBuffer(uint8_t*pBuffer,uint32_tReadAddr,uint32_tNumByteToRead){sFLASH_CS_LOW();sFLASH_SendByte(sFLASH_CMD_READ);sFLASH_SendByte((ReadAddr>
>16)//傳送高8位sFLASH_SendByte((ReadAddr>
>8)//傳送中8位sFLASH_SendByte((ReadAddr>
>0)//傳送低8位while(NumByteToRead--){*pBuffer=sFLASH_SendByte(sFLASH_DUMMY_BYTE);pBuffer++;}sFLASH_CS_HIGH();}//寫一頁最多只能寫256個(gè)字節(jié),一個(gè)扇區(qū)16頁,一個(gè)塊16個(gè)扇區(qū)voidsFLASH_WritePage(uint8_t*pBuffer,uint32_tWriteAddr,uint32_tNumByteToWrite){if(NumByteToWrite>sFLASH_SPI_PAGESIZE){NumByteToWrite=sFLASH_SPI_PAGESIZE;printf("寫數(shù)據(jù)量過大,超過一頁大小n");}sFLASH_WriteEnable();//開啟寫使能sFLASH_CS_LOW();sFLASH_SendByte(sFLASH_CMD_WRITE);sFLASH_SendByte((WriteAddr>
>16)//傳送高8位sFLASH_SendByte((WriteAddr>
>8)//傳送中8位sFLASH_SendByte((WriteAddr>
>0)//傳送低8位while(NumByteToWrite--){sFLASH_SendByte(*pBuffer);pBuffer++;}sFLASH_CS_HIGH();/*擦除和寫數(shù)據(jù)都涉及到寫動(dòng)作,一定要等待完成*/sFLASH_WaitForEnd();}//寫任意地址、任意長度voidsFLASH_WriteBuffer(uint8_t*pBuffer,uint32_tWriteAddr,uint32_tNumByteToWrite){uint16_tNumOfPage,NumOfBytes,count,offset;//求WriteAddr在某一頁的位置offset=WriteAddr%sFLASH_SPI_PAGESIZE;//求某一頁剩余的大小count=sFLASH_SPI_PAGESIZE-offset;/*處理頁不對(duì)齊的情況,防止頁內(nèi)覆蓋*///先把某一頁剩下的部分寫掉,之后的就能新頁的起始處開始寫/*offset有值表示需要頁對(duì)齊,如果要寫的字節(jié)數(shù)小于某一頁剩余的部分,那就無需對(duì)齊*//*這兩個(gè)條件必須同時(shí)滿足*/if(offsetNumByteToWrite-=count;//去掉已經(jīng)寫了的,從新頁開始pBuffer+=count;WriteAddr+=count;}/*最多可分多少頁*/NumOfPage=NumByteToWrite/sFLASH_SPI_PAGESIZE;/*剩余多少字節(jié)*/NumOfBytes=NumByteToWrite%sFLASH_SPI_PAGESIZE;if(NumOfPage){while(NumOf){//每一頁都發(fā)起頁編程sFLASH_WritePage(pBuffer,WriteAddr,sFLASH_SPI_PAGESIZE);pBuffer+=sFLASH_SPI_PAGESIZE;WriteAddr+=sFLASH_SPI_PAGESIZE;}}if(NumOfBytes){sFLASH_WritePage(pBuffer,WriteAddr,NumOfBytes);}}為什么會(huì)有兩種寫操作函數(shù),是因?yàn)檫@里的寫操作有兩個(gè)特點(diǎn):
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣西貨運(yùn)考試題目
- 小學(xué)六年級(jí)下冊(cè)口算試題
- 電力租賃合同(2篇)
- 電機(jī)購銷合同(2篇)
- 2024-2025學(xué)年度九年級(jí)物理全冊(cè)15.2電流和電路教學(xué)設(shè)計(jì)2新版新人教版
- 生產(chǎn)技術(shù)員工作總結(jié)
- 一年級(jí)班隊(duì)上學(xué)期工作計(jì)劃
- 工地保安部年終工作總結(jié)
- 教育教學(xué)工作計(jì)劃書
- 景區(qū)酒店合作協(xié)議書范本
- 長江委水文局2025年校園招聘17人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學(xué)院公開招聘15人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 廣東省廣州市番禺區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 不可切除肺癌放療聯(lián)合免疫治療專家共識(shí)(2024年版)j解讀
- 教科版科學(xué)六年級(jí)下冊(cè)14《設(shè)計(jì)塔臺(tái)模型》課件
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機(jī)械行業(yè)市場(chǎng)全景調(diào)查及投資前景預(yù)測(cè)報(bào)告
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- JGJ46-2024 建筑與市政工程施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)
- 信息安全意識(shí)培訓(xùn)課件
- 家譜、宗譜頒譜慶典講話
評(píng)論
0/150
提交評(píng)論