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...