您好,參考該貼下面回復,注意中斷函數(shù)要加中斷聲明
void TIM3_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
原來是這樣,好的謝謝
@TECH62 請問各中斷服務程序,函數(shù)名要怎么寫? 在哪個資料里?
您好,可參考啟動文件相關函數(shù)寫法,如下圖
好的,謝謝,中斷服務程序入口程序已經找到了。另外有幾個問題
中斷服務程序必須要聲明,是因為這是一個回調函數(shù)嗎? STM32的中斷服務程序也是要這樣聲明的嗎?
__attribute__((interrupt("WCH-Interrupt-fast")))? 的作用是啥? "WCH-Interrupt-fast"這是你們定義的一個讓編譯器進行某種操作的相當于命令的意思嗎?如果是的話,具體是什么意思呢?
謝謝!
您好,使用CH32V系列MCU需要加該中斷聲明,其他不需要。關于中斷聲明的解釋,可以參考一下下帖解釋,如下圖。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通。
好的,明白了,謝謝
我看了啟動文件,中斷服務程序的所有回調函數(shù)入口地址都是跳轉到1b執(zhí)行( j 1b ), 如果不聲明自己的中斷處理函數(shù),產生的中斷就不會回調我們寫的中斷服務程序,導致程序( j 1b ),從而導致程序跑飛
@TECH62 對了,為什么中斷服務程序里,還要先檢查是否發(fā)生中斷?難道還能有其它情況進入中斷服務程序(程序跑飛?)?
void TIM3_IRQHandler(void)
{
? ? static u8 i=0;
? ? if (TIM_GetITStatus(TIM3, TIM_IT_Update)!=RESET)? ? //檢查TIM3中斷是否發(fā)生
我去百度了一下,明白了,謝謝