實驗程序庫函數(shù)版30lcd iic_第1頁
實驗程序庫函數(shù)版30lcd iic_第2頁
實驗程序庫函數(shù)版30lcd iic_第3頁
實驗程序庫函數(shù)版30lcd iic_第4頁
實驗程序庫函數(shù)版30lcd iic_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

30LCD-IICTFTLCD上。本章分為以下學(xué)習(xí)目標(biāo):I2CI2CI2C總線時PHILIPS公司推出的一種串行總線,具備多主機系統(tǒng)所需的包括總線仲裁一個是時鐘線SCL。在I2C總線上面,每個器件都有自己相應(yīng)的I2C地址,所以在兩個行應(yīng)答之后才開始通信。首先我們來看一下,一個I2C信號傳輸?shù)囊粋€過程,如圖:I2C上面一個完整信號的傳輸過程,一定要有一個始信號,還有一1、在總線空閑的時候,SDASCL2SCL為高電平期間,SDASDASCL為低電號)。SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號,I2C總線上面,當(dāng)總線空閑的時候,SCLSDA都是高電平SDA從高電平向低電平跳變的時候,兩4.7usSCLSDA低電平要至少保持4us的時間(從這里我們看出I2C總高速率已經(jīng)決定了)。IOvoid{}SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。IO{}應(yīng)答,也叫響應(yīng)。數(shù)據(jù)的傳輸必須要帶應(yīng)答。在響應(yīng)的時鐘脈沖期間(SCL在高電平的時候)SDA線(釋放SDA意思就是將SDA拉為高電平,這里要注SCLSDASCL在低電平的時候,將SDA拉為高電待然后等待應(yīng)答,在應(yīng)答時鐘脈沖器件,是產(chǎn)生一個高電平的時鐘,進行應(yīng)答)里面I2C的IO模擬信號里面接收數(shù)據(jù)的函數(shù),最后的應(yīng)答和非應(yīng)答。IOvoidI2C_Ack(void){}voidI2C_NAck(void){}//返回值:1 0u8{u8{{return1;}}return}一般I2C的時候,都是在SCL的為高電平的時候進行,所以在SCL為高電平的時候,需要保持SDA穩(wěn)定。而且注意的還有就是他們的保持時間要大于4us。IO//I2CvoidI2C_Send_Byte(u8{u8{if((txd&0x80)>0)//0x80 }}IO//I2C一個字u8I2C_Read_Byte(u8{u8{}return}24C02以參考光盤上面的DATASHEET。24C02可以提供2K2568位字節(jié)的EEPROM內(nèi)存。也就是說它可以256個字節(jié)的數(shù)據(jù)。所以從這里我們可以了解到,256256個內(nèi)存地24C02讀寫數(shù)據(jù)的時候,地址正好跟一個字節(jié)一一24C02I2C里是8個字節(jié),(在有些上面是16個字節(jié),不過開發(fā)板上面使用24C02是一頁8個字節(jié),ARM公司提供的例程里面24C02設(shè)定的也是一頁8個字節(jié)。)也就是說當(dāng)你寫入的數(shù)據(jù),在同一頁的時候(注意是在同一頁的時候)每寫入一個字節(jié),地址自動加1。24C02的讀操作,24C02的讀操作就可以連續(xù)讀,不管連續(xù)讀的數(shù)據(jù)是不是在同一頁,24C02STM32I2C2PB10PB11IOI2C24C02的器件地址是高四位1010是24Cxx系列的固定器件地址,接下來是A2、A1、A0是根據(jù)器件連接來決定,也就是我們原理圖上面的E2、E1、E0。我們的原理圖都接地所以是000。R/W為是選擇讀還是寫,1的時候是讀,00xA00xA1STM32I2CSTM32I2CSTM32的硬件I2C,很難調(diào)試。不過AT24C02有ARM的提供的例程,讀寫還是挺穩(wěn)定的,我們的例程使用的也是參考ARM的例程來的。接下來我們看看一下通過庫函數(shù)使用硬件I2C來操作AT24C02。配置IO的模式#defineI2C_SCLGPIO_Pin_10//PB10#defineI2C_SDAGPIO_Pin_11//PB11#defineGPIO_I2CGPIOB24C02函數(shù) : :24c02寫一個字節(jié)地址數(shù)*入:addr*出/voidAT24Cxx_WriteOneByte(u16addr,u8{{}{}I2C_Wait_Ack();I2C_Stop();}那么AT24C02的步驟是發(fā)送要的AT24C02的地函數(shù) : :24c02讀一個字節(jié)地址數(shù) : :返回值/{u8{ }{}temp=I2C_Read_Byte(0);//0 return}FunctionName: :Main : : :intmain(){u8TFT_Init();//TFT彩屏初始化 key_init();//按鍵初始化printf_init();//printf初始化 GUI_Show12ASCII(10,10,"ThisisaIIC-AT24C02Check!",YELLOW,BLACK);GUI_Show12ASCII(10,27,"PB10PB11isIICInterface!",YELLOW,BLACK);GUI_Show12ASCII(10,44,"TheK_UPis:AT24C02Write",YELLOW,BLACK);GUI_Show12ASCII(10,61,"TheK_DOWMis:AT24C02Read",YELLOW,BLACK);GUI_Show12ASCII(10,100,"WritedataRangeis:0-255",YELLOW,BLACK);GUI_Show12ASCI

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論