通訊的ic 是fdc2214 ,在f1執行時通訊正常,移植到f4時只需要修改下引腳io的初始化,以及輸入輸出方向。
但是在測試時候發現了乙個問題,在向fdc2214寫入資料時,msb的最高位始終無法寫入 。
這裡是對使用f103和f407對暫存器進行讀寫操作的測試結果。
暫存器f407
f103
寫入初值
rcount_ch0
347b
34fb
34fb
settlecount_ch0
001b
001b
001b
clock_dividers_c_ch0
2002
2002
2002
drive_current_ch0
7bc0
7bc0
7800
error_config
0000
0000
0000
mux_config
420d
c20d
c20d
config
1401
1401
1401
drive_current_ch1
7800
7bc0
7800
通過對比發現,f103寫入和讀取的值是大部分一致的。
只有 mux_config 在stm32f103和f407中讀取的資料時不同的。進一步測試發現 是最高位資料發生了錯誤。
傳送設定時,寫入0xc20d,實際寫入為0x420d
分析原因,應該是在寫通訊過程中發生了錯誤。
最後誤打誤撞發現了問題的原因和解決辦法,在這裡告訴大家:
問題出在sda引腳設定方向這裡。
這裡是本來的**,可能是f4換輸入輸出方向有一點問題。
//io方向設定
#define fdc_sda_in()
#define fdc_sda_out()
最後的解決方案就是在換向之後加入乙個延時,問題解決;
//io方向設定
#define fdc_sda_in()
#define fdc_sda_out()
STM32F1和F4的區別
stm32f1和f4的區別 第一點區別 核心不一樣 stm32f1是cortex m3的核心。stm32f4是cortex m4的核心。晶元工藝不一樣。因為stm32最早2010年左右就出來的mcu,而f4比f1晚幾年研發出來,在設計製成上要優良一些 系統構架也不一致,f4的主系統有多層ahb匯流排...
STM32F4與STM32F1的區別
作為cortex m3市場的最大佔有者,st公司在2011年又推出基於cortex m4核心的stm32f4系列產品,相對與stm32f1 f2等cortex m3產品,stm32f4最大的優勢,就是新增了硬體fpu單元以及dsp指令,同時,stm32f4的主頻也提高了很多,達到168mhz 可獲得...
STM32F1與STM32F4間CAN通訊除錯
can通訊的除錯不單是軟體上的除錯,也需要對硬體進行檢查。在調通之前一直有兩個疑惑干擾判斷 結論在文末 1.不同的can晶元是否存在不相容。2.不同型號的stm32是否can通訊是否存在差異。stm32f1與stm32f4之間can通訊的除錯過程 僅以stm32f1作介紹 標準庫 1.確定引腳與資源...