問題1,EXTI0~EXTI15每個(gè)對(duì)應(yīng)于一組(PA,PB,PC,PD..)1,在用外部中斷的時(shí)候如用EXTI4(外部中斷4)需要配置PA4還是PB4...這幾組io口的第四個(gè)管腳作為輸入,只能選擇一個(gè)。
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),成都網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為成都上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的成都做網(wǎng)站的公司定做!
問題2,void EXTI_Configuration(void) 中斷初始化函數(shù)
EXTI_InitTypeDef EXTI_InitStructure; 定義EXTI_InitStructure為中斷配置的結(jié)構(gòu)體,然后對(duì)結(jié)構(gòu)體內(nèi)容進(jìn)行配置之后初始化外部中斷。
問題3,你要用什么加什么外設(shè),外設(shè)的函數(shù)庫都是以頭文件的格式加入(.h)文件,編譯的時(shí)候編譯器搜索加入的頭文件包含的內(nèi)容,有就編譯沒有用到的不編譯進(jìn)去,你說的情況之后再加入主函數(shù)里面多余的子函數(shù)才報(bào)錯(cuò)。
有問題可以補(bǔ)充。
不是SDK吧 應(yīng)該是MDK
void EXTI4_IRQHandler(void)//外部中斷4
{
if(EXTI_GetITStatus(EXTI_Line4)!= RESET){//發(fā)生了中斷
EXTI_ClearITPendingBit(EXTI_Line4);//清除中斷標(biāo)志位
if(Ledflag == 0){
Ledflag = 1;//LED標(biāo)志取反
GPIOC-ODR |= 0X00000080;//GPIOC7輸出高電平
}
else{
Ledflag = 0; //LED標(biāo)志取反
GPIOC-ODR = 0XFFFFFF7F;//GPIOC7輸出低電平
}
}
}
兩個(gè)中斷的處理函數(shù)不一定分別在兩個(gè)子函數(shù)中寫。如果兩個(gè)中斷沒共用一個(gè)中斷號(hào),就是分開寫,如果共用了中斷號(hào),就只寫一個(gè)。
LED1=!LED1;這就是一條單片機(jī)一個(gè)引腳狀態(tài)取反操作的語句,很簡(jiǎn)單的操作,編譯后就是一條匯編指令,根本不需要什么函數(shù)。其實(shí),在單片機(jī)中每一個(gè)引腳都是按一個(gè)位操作的,所以,就是一條位操作指令,也沒有這種庫函數(shù)。