原創 mdk5巨集定義的使用小結

2022-01-13 16:24:21 字數 574 閱讀 2700

前幾天在網上申請了一塊晶元為stm32f103cbt6的小板子。

在用keil程式設計的過程中發現一些小問題,總結如下:

使用mdk5開發,與之前的庫函式的引用方式已經改變。不需要在選項的c/c++標籤頁中包含外設 use_stdperiph_driver 了。如果在 define框裡填寫了該詞,會提示找不到 stm32f10x_conf.h(這個標頭檔案在手動包含庫檔案的方式下使用)。

選項視窗 裡的 target標籤頁裡的晶振引數對於具體產品沒有影響——應該是用於軟體模式的時候起作用。

我得到的小板子,晶振是12m,與 stm32f10x.h (大概在120行)定義的頻率不同。在很長時間裡,我想到的辦法就是修改這個頻率的定義,但是在其他板子(8m晶振)程式設計的時候,又麻煩了。

其實也想到巨集定義在標頭檔案裡的120行插入自定義的巨集:

#ifdef hse_value_12m

#define hse_value ((uint32_t)12000000)

#endif

但是如何啟用這個巨集呢,或者先入為主的讓12m引數起作用,折騰了我很久。首先想到,在main.c裡先定義巨集,但是不管怎麼設定,都無效。

關於MDK5軟體出現錯誤的解決方式 學習筆記

在keil軟體的中經常會出現以下幾種錯誤 關於這個問題是由於以下幾個方面的問題造成的 1 語法錯誤,少了括號,少了逗號等等。從圖中明顯可以看錯少了乙個分號,但是編譯完全正確。著可能是mdk5的乙個bug。2 函式名衝突,自己定義的函式名與其他函式發生了衝突。我已經測試過,它不僅僅是與 inlcude...

mdk5環境下的stm32的安裝及簡單使用

1.選擇晶元 巨集定義,用於存放stm32暫存器對映 define periph base unsigned int 0x40000000 ahb define apb2periph base periph base 0x10000 define gpioa base apb2periph base...

巨集定義的使用技巧

參考部落格 1 防止乙個標頭檔案被重複包含 ifndef bodydef h define bodydef h 標頭檔案的內容 endif 2 重定義一些型別,防止由於各種平台和編譯器的不同,而產生的型別位元組數的差異,方便移植。typedef unsigned char boolean 3 得到指...