一個間的外部中斷程式控制LED亮滅
首先,我們要了解中斷是怎麼執行的,打個比方,現在小明在家看電視,這時臥室裡的電話響了,聽到電話響的小明就暫停電視跑去臥室接電話,接完電話又繼續看電視。這一個過程就是中斷的執行過程,小明看電視時就相當於微控制器正在執行的程式,電話響了就是外部產生了一箇中斷訊號,小明暫停電視跑去接電話就是在執行中斷服務函式,接完電話又回來看電視,就相當於執行完中斷函式跳出繼續執行之前的程式。
那麼接下來就看看這個程式的具體寫法;
這一整個程式分硬體部分和軟體部分。
一、硬體部分
按鍵按下高電平有效,透過讀取PC13和PA0電平作為產生中斷訊號的觸發源。
二、軟體部分
初始化用來產生中斷的 GPIO;
初始化 EXTI;
配置 NVIC;
先宏定義好GPIO埠位、時鐘和中斷源
再配置好NVIC
EXTI 中斷配置
KEY2按鍵配置同KEY1
EXTI 中斷服務函式
注:程式中LED1_TOGGLE和LED2_TOGGLE是在LED_GPIO_config( )裡配置好了
主函式
一個間的外部中斷程式控制LED亮滅
首先,我們要了解中斷是怎麼執行的,打個比方,現在小明在家看電視,這時臥室裡的電話響了,聽到電話響的小明就暫停電視跑去臥室接電話,接完電話又繼續看電視。這一個過程就是中斷的執行過程,小明看電視時就相當於微控制器正在執行的程式,電話響了就是外部產生了一箇中斷訊號,小明暫停電視跑去接電話就是在執行中斷服務函式,接完電話又回來看電視,就相當於執行完中斷函式跳出繼續執行之前的程式。
那麼接下來就看看這個程式的具體寫法;
這一整個程式分硬體部分和軟體部分。
一、硬體部分
按鍵按下高電平有效,透過讀取PC13和PA0電平作為產生中斷訊號的觸發源。
二、軟體部分
初始化用來產生中斷的 GPIO;
初始化 EXTI;
配置 NVIC;
4. 編寫中斷服務函式;先宏定義好GPIO埠位、時鐘和中斷源
再配置好NVIC
EXTI 中斷配置
KEY2按鍵配置同KEY1
EXTI 中斷服務函式
注:程式中LED1_TOGGLE和LED2_TOGGLE是在LED_GPIO_config( )裡配置好了
主函式