IIC讀取AT24C256資料出現的問題及解析

2021-08-13 08:23:51 字數 678 閱讀 4148

stm32f407zgt6,at24c256

mdk5,gpiog_pg2->scl,gpiog_pg3->sda,屬於軟體模擬iic

在用邏輯分析儀分析時序時發現時序完全沒問題,如圖:

向位址為7fffh的位址寫0x55:

對位址為7fffh的位址讀資料:

由圖可以看出寫並沒出現問題,問題出在讀資料時。讀時序正確,但是讀出來的值為0xff,這是個錯誤值,因為前面我已經向改位址寫入了0x55,所以問題出現在這裡。在時序正確的情況下無法讀出資料!

在iic初始化時,將scl設定為推挽輸出模式,將sda設定為開漏輸出模式,如下所示:

gpio_set(gpiog,pin2,gpio_mode_out,gpio_otype_pp,gpio_speed_50m,gpio_pupd_pu);//pg2設定

gpio_set(gpiog,pin3,gpio_mode_out,gpio_otype_od,gpio_speed_50m,gpio_pupd_pu);//pg3設定

IIC方式讀驅動AT24C16晶元

閒來無事,找了塊msp430的板子編寫了個iic驅動at24c16的程式。iic作是一種簡單,雙向,同步的二進位制匯流排,由sda資料線和scl時鐘線組成,所有接到iic匯流排上的各裝置的sda資料線都連線到匯流排的sda資料線上,用來進行資料的傳輸 所有接到iic匯流排上的各裝置的scl時鐘線都連...

軟體模擬iic24c02協議實現

iic時序 if 1 void iic start void iic stop void void iic send byte u8 txd iic scl 0 delay ms 5 u8 iic wait ack delay ms 5 return 0 u8 iic read byte unsig...

IIC實現對EEPROM(24C02)的讀寫

概述 eeprom晶元型號為24c02,該晶元的總容量是256個位元組,該晶元通過iic匯流排與外部連線。實驗功能 通過key1按鍵來控制24c02的寫入,通過另外乙個按鍵key0來控制24c02的讀取。硬體電路 iic配置 初始化iic void iic init void 產生iic起始訊號 v...