使用stm32cubemx生成硬件I2C的代碼 不過自動生成的代碼,調用HAL_I2C_XXX的API工作不正常,返回錯誤代碼為I2C_BUSY 使用STM32的I2C接口使用時需要注意很多細節,不過HAL庫中官方已經為用戶根據這些細節做了處理,可以直接使用。不過這個I2C代碼並不穩定,有些板子 ...
關於STM 的I C接口死鎖在BUSY狀態無法恢復的現象,網上已有很多討論,看早幾年比較老的貼子,有人提到復位MCU也無法恢復 只有斷電才行的狀況,那可是相當嚴重的問題。類似復位也無法恢復的情況是存在的,技術支持矢口否認問題存在,並不是正確面對問題的態度。比如我用這款F 芯片的SDRAM控制器,在錯誤操作后進入HardFault狀態,復位無法恢復,JTAG也無法聯機,只能斷電重來,官方的Errat ...
2019-04-25 14:44 0 834 推薦指數:
使用stm32cubemx生成硬件I2C的代碼 不過自動生成的代碼,調用HAL_I2C_XXX的API工作不正常,返回錯誤代碼為I2C_BUSY 使用STM32的I2C接口使用時需要注意很多細節,不過HAL庫中官方已經為用戶根據這些細節做了處理,可以直接使用。不過這個I2C代碼並不穩定,有些板子 ...
最近在調研STM32 F10X,准備把公司AVR的MCU項目遷移到STM32上。在調研STM32 i2c這一部分時,在與i2c slave硬件連接斷開后,這時再去讀/寫 i2c slave需要STM32這邊的i2c_read/write函數做一些處理。 剛開始在i2c讀寫timeout后,添加 ...
I2C基本概念 I2C (芯片間)總線接口連接微控制器和串行I2C總線。它提供多主機功能,控制所有I2C總線特定的時序、協議、仲裁和定時。支持標准和快速兩種模式,同時與SMBus 2.0兼容。I2C模塊有多種用途,包括CRC碼的生成和校驗、 SMBus(系統管理總線—System ...
I2C接口是一種使用非常普遍的MCU與外部設備的接口方式,在STM32中也集成了I2C接口,我們也常常使用它來與外圍的傳感器等設備通訊。 最近在我們使用STM32F1VET6讀取壓力和溫濕度傳感器數據時,就是使用I2C接口來實現通訊的。但在使用I2C和STM32F1的標准庫讀取數據時出現了死機 ...
軟件模擬協議:使用CPU直接控制通訊引腳(GPIO)的電平,產生出符合通訊協議標准的邏輯。 硬件實現協議:由STM32的I2C片上外設專門負責實現I2C通訊協議,只要配置好該外設,它就會自動根據協議要求產生通訊信號,收發數據並緩存起來,CPU只要檢測該外設的狀態 ...
一、什么是I2C? I2C是串行數據總線,有兩根信號線組成,一根是SDA(數據線),一根是SCL(時鍾線)。I2C總線是多主從總線,當有兩個主機或多個主機同時初始化傳輸數據時,可以通過沖突檢測和仲裁防止數據被破壞,每個連接到總線上的設備都有唯一的地址,任何器件既可以作為主機也可以作為從機 ...
/** ****************************************************************************** * @author ...
上一篇博客是使用I2C讀寫EERPOM的初級版本,這次在上次的基礎上添加中斷,使用DMA傳輸控制,新添加兩個讀寫函數 采用中斷方式和DMA可以充分利用單片機強大的硬件外設,提高整體運行效率,而且,在編程上也更為便捷 新的頁寫函數如下 代碼中注釋掉的部分是原來的設計,在它下面是新 ...