2021-09-12 14:38:26 索煒達(dá)電子 586
項(xiàng)目編號(hào):E1098
文件大?。?58K
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
傳說STM32的硬件I2C有BUG,從而大家都使用軟件模擬I2C。參考了網(wǎng)上一篇博客(racede.me)的文章,最后我寫了一份硬件I2C讀寫24C512的例程,沒有使用中斷,可以穩(wěn)定地工作在400kHz,并且支持多片EEPROM。我自己僅測(cè)試了2片24C512,首片地址是A0,第二片地址是A2。經(jīng)過17個(gè)小時(shí)的壓力測(cè)試后,自感代碼比較穩(wěn)定,現(xiàn)分享給有需要的朋友。
說明:
1、使用了I2C2,PB10和PB11
2、I2C工作頻率為400kHz
3、支持多片EEPROM,型號(hào)不限;支持自動(dòng)探測(cè)EEPROM的片數(shù),但不支持識(shí)別EEPROM類型,需要手工代碼指定。本人只測(cè)試了2片24C512的場(chǎng)景
4、本例程沒有使用中斷,也沒有使用DMA,并且不受其它中斷影響
5、該代碼在STM32F103上測(cè)試通過
文件列表:
└ i2c_ee
│ i2c_ee.c
└ i2c_ee.h