今天在玩stm32的外部中斷的時候遇到下邊問題:
compiling
stm32f10x_nvic.c...
linking...
exit.axf:
error:
l6218e:
undefined
symbol
__basepriconfig
(referred
from
stm32f10x_nvic.o).
exit.axf:
error:
l6218e:
undefined
symbol
__getbasepri
(referred
from
stm32f10x_nvic.o).
exit.axf:
error:
l6218e:
undefined
symbol
__resetfaultmask
(referred
from
stm32f10x_nvic.o).
exit.axf:
error:
l6218e:
undefined
symbol
__resetprimask
(referred
from
stm32f10x_nvic.o).
exit.axf:
error:
l6218e:
undefined
symbol
__setfaultmask
(referred
from
stm32f10x_nvic.o).
exit.axf:
error:
l6218e:
undefined
symbol
__setprimask
(referred
from
stm32f10x_nvic.o).
target
not
created
先一開始覺得是不是stm32f10x_conf.h裡面沒有把nvic定義,後來發現定義了。那為什麼還會有問題咧?開啟 stm32f10x_nvic.c檔案,在裡邊看見這個函式,裡邊呼叫函式了__resetprimask();可__resetprimask()的來 源在哪兒,
void nvic_resetprimask(void)
用**閱讀器查詢了一下,它們在cortexm3_macro.h中宣告了,那它就應該在cortexm3_macro.c中,可stm32的庫中沒有 cortexm3_macro.c檔案,但找到了乙個cortexm3_macro.s檔案,開啟cortexm3_macro.s檔案,看到:
export __resetprimask
export __setprimask
export __read_primask
export __resetfaultmask 等函式,終於找到地方了,呵呵、、、還有.s檔案一般是啟動檔案,所以就把cortexm3_macro.s檔案加到工程啟動檔案的地方:
這樣就好了!
STM32外部中斷
一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...
stm32外部中斷
外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...
stm32外部中斷
好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...