STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)_第1頁
STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)_第2頁
STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)_第3頁
STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)_第4頁
STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第第頁STM32單片機學(xué)習(xí)筆記(4):24C02(模擬IIC)

項目簡介利用CubMX生成基于32(單片機)的HAl庫工程,然后編寫程序在(proteus)上(仿真)驗證。本項目最適合沒有開發(fā)板的同學(xué)學(xué)習(xí),零成本利用仿真軟件率先入門(STM32)單片機。這是第四部分針對EEP(ROM)24C02的一個實例,I(IC)(通信)是一種比較典型的串行通信方式,在很多情況下都會有所使用,了解并熟悉IIC通信就顯得十分重要。本項目之所以使用(模擬)IIC,而沒有使用STM32單片機內(nèi)置的(硬件)IIC,主要由于Half庫里IIC的坑太多了,自己一開始也是想通過HAL庫來開發(fā),但是始終不成功,也有可能仿真軟件也有些坑,如果有能夠做出來的大佬,也歡迎評論區(qū)或私聊我交流,不過在實物32(單片機開發(fā))板上網(wǎng)上好像驗證過可用,但是手上暫時缺開發(fā)板,針對硬件IIC這一塊的內(nèi)容,以后有時間會完善。

硬件模塊STM32F103R4

24C02

串口模塊

軟件工具CubMX

Proteus

(KEIL)

電路連接圖

工作流程首先創(chuàng)建一個CubMX工程,如果是配置硬件IIC很容易,只要簡單選擇一下就可以了

默認(rèn)是標(biāo)準(zhǔn)模式,速度是100kHz,可以選擇高速模式400kHz,其余可以保持默認(rèn),當(dāng)然這是硬件IIC的配置方法,咱們用的是模擬IIC,相應(yīng)的引腳設(shè)置在后面生成的Keil工程里編寫相應(yīng)程序即可。

其余也是保持默認(rèn)即可

之后,在生成的KEIL工程中編寫相應(yīng)的程序,這部分在后面會列出。

然后就是驗證了。將提前設(shè)置的一組數(shù)據(jù)寫入進(jìn)24C02中,然后從24C02中讀取出來,并用串口打印,提前設(shè)置的數(shù)據(jù)是{1,2,3,4,5,6,7,0},串口打印出的數(shù)據(jù)如下:

(程序代碼)main.c

uint8_tWri(te)Buffer[2*Buffe(rS)ize]={1,2,3,4,5,6,7,0};//需要寫的數(shù)據(jù)在WriteBuffer當(dāng)中uint8_tRe(ad)Buffer[2*BufferSize]={0};//讀出來的數(shù)據(jù)放進(jìn)ReadBuffer當(dāng)中uint8_ti;uint8_tdata_addr=0x01;/*USERCODEEND0*///重定向printf()到串口發(fā)送和接收,方便應(yīng)用intfputc(intch,FILE*f){uint8_ttemp[1]={ch};HAL_(UART)_Transmit(returnch;}//重定向s(can)f()函數(shù)和getchar()函數(shù),方便應(yīng)用intfgetc(FILE*f){uint8_tch=0;HAL_UART_Receive(returnch;}/***@briefTheapplicationentrypoint.*@retvalint*/intmain(void){/*(MCU)Configura(ti)on*//*Resetofallperipherals,InitializestheFlashinterfaceandtheSystick.*/HAL_Init();/*USERCODEBEGINInit*//*USERCODEENDInit*//*Configurethesystemclock*/SystemClock_Config();/*USERCODEBEGINSysInit*//*USERCODEENDSysInit*//*Initializeallconfiguredperipherals*/MX_GPIO_Init();MX_USART1_UART_Init();/*USERCODEBEGIN2*//*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/AT_24c02_int();f(or)(i=0;i24C02.c

voidAT_24c02_int(void){IIC_Init();}//data_addr字節(jié)地址//data數(shù)據(jù)voidAT_24c02_write_data(uint8_tdata_addr,uint8_tdata){IIC_Start();IIC_Send_Byte(0xa0);IIC_W(ai)t_(Ac)k();IIC_Send_Byte(data_addr);IIC_Wait_Ack();IIC_Send_Byte(data);IIC_Wait_Ack();IIC_Stop();}uint8_tAT_24c02_read_data(uint8_tdata_addr){uint8_tdata=0;IIC_Start();IIC_Send_Byte(0xa0);IIC_Wait_Ack();IIC_Send_Byte(data_addr);IIC_Wait_Ack();IIC_Start();IIC_Send_Byte(0xa1);IIC_Wait_Ack();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論