是在正點原子的阿波羅stm32f429開發板上的例子改來的,他們的編譯沒有問題,我編譯時出現如下問題:
定位到出錯的地方,**是:
再追**,configmax_syscall_interrupt_priority 的定義是:
#define configmax_syscall_interrupt_priority ( configlibrary_max_syscall_interrupt_priority << (8 - configprio_bits) )
其中 configlibrary_max_syscall_interrupt_priority 定義為:
#define configlibrary_max_syscall_interrupt_priority 5 //系統可管理的最高中斷優先順序
configprio_bits 定義為:
#ifdef __nvic_prio_bits
#define configprio_bits __nvic_prio_bits
#else
#define configprio_bits 4
#endif
我們定義了__nvic_prio_bits 為:
#define __nvic_prio_bits 4u /*!< stm32f4xx uses 4 bits for the priority levels */
就是因為這裡的定義後面有乙個u,導致編譯不過。
後來跟蹤429的**發現 __nvic_prio_bits 的定義為:
而427的**為:
一句話,就是多了乙個u導致編譯不過。
基於stm32f407建立stm32F427工程
分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...
STM32F407 驅動外部SRAM
需要驅動的sram型號為is61lv25616al,價效比比51216的高很多 配置cubemx 這幾個時序比較關鍵,可以按照手冊來計算,我用下來這幾個數值比較合適。然後就沒有然後了,生成 就可以用了。檢查sram內容是否正確 uint8 t bsp testextsram void 寫sram p...
STM32F407之了解程式設計環境
前文再續,書接上一回,前面我們建立了乙個資料夾,用來存放我們的工程,有建了三個資料夾,現在,分別解析一下這三個資料夾裡放的是什麼東西。inc資料夾裡放的是標頭檔案,一共六個,以後我們自己的標頭檔案也可以放到這裡來。stm32f4xx.h 包含了stm32f4的暫存器結構體的定義 類似於c51的reg...