




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文以USART1為例,敘述串口中斷的編程過(guò)程。1、先來(lái)講述一下在應(yīng)用串口中斷時(shí)涉及到的一些庫(kù)文件。首先對(duì)于STM32外設(shè)庫(kù)文件的應(yīng)用編程,misc.c和stm32f10x_rcc.c是肯定要添加到。接下來(lái)就是我們要用到的相關(guān)外設(shè)了。毫無(wú)疑問(wèn),串口文件stm32f10x_usart.c是必須的。串口通信是對(duì)通用GPIO端口引腳的功能復(fù)用,所以還需要stm32f10x_gpio.c文件。另外,因?yàn)橛兄袛嗟漠a(chǎn)生,所以中斷文件stm32f10x_it.c也是必要的,當(dāng)然這個(gè)文件一般和main.c放在一個(gè)文件夾下(一般習(xí)慣為User文件夾),因?yàn)槲覀兊闹袛囗憫?yīng)函數(shù)是要在里面自己編寫的。當(dāng)然還有其他的基
2、本必須文件如系統(tǒng)配置文件等在這地方就不說(shuō)了,這個(gè)是創(chuàng)建一個(gè)工程應(yīng)該知道的。2、初始化對(duì)于串口通信的初始化,不僅僅只是對(duì)串口的初始化(這個(gè)地方是比較煩人的,不像別的芯片那樣簡(jiǎn)潔明了)。l 首先時(shí)鐘使能配置。STM32內(nèi)部的時(shí)鐘有很多,感興趣的自己看看參考手冊(cè)。此處以USART1為例說(shuō)明。有USART1時(shí)鐘、GPIOA時(shí)鐘、GPIO復(fù)用(AFIO)時(shí)鐘。由于此處USART1和GPIOA、AFIO均在APB2上,所以可以一次配置完成。如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Peri
3、ph_USART1 ,ENABLE);l 其次中斷配置。主要有優(yōu)先級(jí)組設(shè)定、USART1中斷使能、該中斷的優(yōu)先級(jí),中斷初始化。程序如下:void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/選擇分組方式0 /* 使能 USART1 中斷 */
4、 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);l 然后GPIO復(fù)用功能配置。一般情況下我們使用原始的外設(shè)和GPIO端口引腳的映射關(guān)
5、系,如果要改變其映射的話,請(qǐng)另外查看參考手冊(cè)上關(guān)于GPIO重映射部分。對(duì)于GPIO的復(fù)用,其引腳的輸入與輸出模式都有要求,在參考手冊(cè)上有詳細(xì)說(shuō)明。void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /* 配置 USART1 Rx 作為浮空輸入 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GP
6、IO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(USARTy_GPIO, &GPIO_InitStructure); /* 配置 USART1 Tx 作為推挽輸出 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed =&
7、#160;GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);l 串口初始化配置。主要有串口基本參數(shù)配置(如波特率、數(shù)據(jù)位、工作方式等),串口中斷使能,串口使能。(1) 基本參數(shù)配置USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudR
8、ate = 9600;/波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;/數(shù)據(jù)長(zhǎng)度USART_InitStructure.USART_StopBits = USART_StopBits_1;/停止位USART_InitStructure.USART_Parity = USART_Parity_No;/校驗(yàn)USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowContr
9、ol_None; /硬件流控制無(wú)USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /發(fā)送與接受兩種方式USART_Init(USART1, &USART_InitStructure);/用配置的參數(shù)驚喜串口初始化(2) 串口中斷使能USART_ITConfig(USARTy, USART_IT_RXNE, ENABLE);/使能接受中斷,在接受移位 寄存器中有數(shù)據(jù)是產(chǎn)生USART_ITConfig(U
10、SARTy, USART_IT_TXE, ENABLE);/使能發(fā)送中斷,在發(fā)送完數(shù)據(jù) 后產(chǎn)生。一般情況下,如果與PC通信的話,我們只用接受中斷即可。(3) 串口使能USART_Cmd(USART1, ENABLE); /USART1使能好了,經(jīng)過(guò)以上不走之后呢,我們就可以進(jìn)行數(shù)據(jù)的收發(fā)了。3、發(fā)送數(shù)據(jù)使用函數(shù)USART_SendData(USART1, char data),一次只能發(fā)送一個(gè)字符。當(dāng)然我們可以用如下函數(shù)發(fā)送字符串。void USART1_Puts(char * str
11、) while(*str) USART_SendData(USART1, *str+); /發(fā)送一個(gè)字符while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET); /等待發(fā)送完畢 當(dāng)然我們也可以循環(huán)發(fā)送字符串?dāng)?shù)組for(i = 0; TxBuf1 != '0' i+) / TxBuf1為定義好的字符串?dāng)?shù)組
12、USART_SendData(USART2 , TxBuf1);while(USART_GetFlagStatus(USART2, USART_FLAG_TC)=RESET);4、接收數(shù)據(jù)由于我們使用的是接受中斷,所以當(dāng)有數(shù)據(jù)需要接收時(shí),會(huì)執(zhí)相應(yīng)的中斷函數(shù)。此處我們USART1的中斷函數(shù)在stm32f10x_it.c文件中。找到函數(shù)void USART1_IRQHandler(void),如果沒(méi)有的話就自己加上吧,別忘了頭文件中需要聲明一下。當(dāng)然你也可以在其他文件中寫下該中斷函數(shù)。當(dāng)產(chǎn)生中斷進(jìn)入該函數(shù)之后,我們就可以進(jìn)行自己的操作了。void
13、USARTy_IRQHandler(void) if(USART_GetITStatus(USARTy, USART_IT_RXNE) != RESET)/如果寄存器中有數(shù)據(jù) /* Read one byte from the receive data register */ RxBuffer1RxCounter1+ =
14、;USART_ReceiveData(USART1); /* if(USART_GetITStatus(USARTy, USART_IT_TXE) != RESET) USART_SendData(USARTy, TxBuffer1TxCounter1+);
15、0;/這個(gè)地方那個(gè)之所以把這個(gè)寫出來(lái)主要是想說(shuō)發(fā)送中斷和接受中斷其實(shí)是共用一個(gè)/中斷函數(shù)的,到底是那個(gè)中斷發(fā)生了呢,這就需要我們讀取中斷狀態(tài)標(biāo)志來(lái)識(shí)別了。*/別忘了在接受完數(shù)據(jù)進(jìn)行別的操作之前為了防止數(shù)據(jù)被覆蓋最好先禁止一下接受中斷 /* 禁止 USART1 接收中斷 */ USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);/* 禁止 USART1 發(fā)送中斷 */USART_ITConfig(USART1, USART_I
16、T_TXE, DISABLE);5、main函數(shù)int main(void) /這個(gè)地方和特別,我們知道一般main函數(shù)是沒(méi)有返回值的,但在STM32 /的編程中其返回類型為int。 RCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); USART_InitStructure.USART_BaudRate = 9600; USART_InitStruc
17、ture.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl= USART_HardwareFlowControl_None;
18、160; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /USART_ITConfig(USART1, USART_IT_TXE, ENABL
19、E); USART_Cmd(USART1, ENABLE); while (1)/等待中斷 當(dāng)然你也可以在main()中添加一些發(fā)送指令之類的東西。以上內(nèi)容為個(gè)人總結(jié),轉(zhuǎn)載請(qǐng)注明出處。若有錯(cuò)誤,本人概不負(fù)任何責(zé)任。STM32 外部中斷配NVIC_Configuration 函數(shù)實(shí)現(xiàn)配置嵌套向量中斷中斷優(yōu)先級(jí)并使能中斷。其中的NVIC_PriorityGroupConfig 函數(shù)配置中斷優(yōu)先級(jí)的組織方式,STM32 的嵌套向量中斷控制器可以配置 16 個(gè)可編程的優(yōu)先等級(jí),使用了 4 位表
20、示中斷優(yōu)先級(jí)(2 的 4 此方就是 16),16 個(gè)可編程的優(yōu)先等級(jí)又可以分為主優(yōu)先級(jí)和次優(yōu)先級(jí),例如參數(shù) NVIC_PriorityGroup_1表示 1bit 主優(yōu)先級(jí)(pre-emption priority)3 bits 次優(yōu)先級(jí)(subpriority )。一、配置中斷1、 分配中斷向量表:/* Set the Vector Table base location at 0x20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);2、 設(shè)置中斷優(yōu)先級(jí):NVIC_PriorityGroupConfig(NVIC_PriorityGro
21、up_0); /設(shè)置中斷優(yōu)先級(jí)3、 初始化外部中斷:/*允許EXTI4中斷 */NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel; /中斷通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= PreemptionPriorityValue; /占先優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /響應(yīng)(次級(jí))優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /通道中斷使
22、能NVIC_Init(&NVIC_InitStructure); /初始化中斷注意:如果我們配置的外部針腳為PA4,或PB4,或PC4,PD4等,那么采用的外部中斷也必須是EXTI4,同樣,如果外部中斷針腳是PA1,PB1,PC1,PD1 那么中斷就要用EXTI1,其他類推。二、配置GPIO針腳作為外部中斷的觸發(fā)事件1、 選擇IO針腳GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;注意,如果的針腳是端口的4號(hào)針腳,配置的中斷一定是EXTI42、 配置針腳為輸入GPIO_InitSt
23、ructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;3、 初始化針腳GPIO_Init(GPIOD,&GPIO_InitStructure);3配置EXTI線,使中斷線和IO針腳線連接上1、 將EXTI線連接到IO端口上將EXTI線4連接到端口GPIOD的第4個(gè)針腳上 GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4);注意:如果配置的針腳是4號(hào),那么參數(shù)必須是GPIO_PinSource4
24、60; 如果配置的針腳是3號(hào),那么參數(shù)必須是GPIO_PinSource32、配置中斷邊沿 /*配置EXTI線4上出現(xiàn)下降沿,則產(chǎn)生中斷*/ EXTI_InitStructure.EXTI_Line = EXTI_Line4; 注意:如果配置的4號(hào)針腳,那么EXTI_Line4是必須的
25、160; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; /下降沿觸發(fā) EXTI_InitStructure.EXTI_LineCmd = ENABLE; /中斷線使能
26、 EXTI_Init(&EXTI_InitStructure); /初始化中斷 EXTI_GenerateSWInterrupt(EXTI_Line4); /EXTI_Li
27、ne4中斷允許到此中斷配置完成,可以寫中斷處理函數(shù)。舉例:配置函數(shù)/* 函數(shù)名 NVIC_Configration* 描述 配置各個(gè)中斷寄存器*/void NVIC_Configration(void) NVIC_InitTypeDef NVIC_InitStructure;/#ifdef VECT_TAB_RAM
28、0; /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);/#else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ /NVIC_SetVecto
29、rTable(NVIC_VectTab_FLASH, 0x0); /#endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /設(shè)置中斷優(yōu)先級(jí) /*允許EXTI4中斷 */ NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel;
30、160; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = PreemptionPriorityValue; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
31、0; NVIC_Init(&NVIC_InitStructure); /*允許EXTI9中斷*/ NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriorit
32、y = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);
33、160; /*配置SysTick處理優(yōu)先級(jí):優(yōu)先級(jí)以及子優(yōu)先級(jí)*/* 函數(shù)名 GPIO_Configuration(void)* 描述 配置TIM2針腳*/void GPIO_Configuration(void)/* GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin= G
34、PIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); */
35、 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC,&am
36、p;GPIO_InitStructure); /*配置GPIOD的第一個(gè)管角為浮動(dòng)輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIO
37、D,&GPIO_InitStructure); /*配置GPIOB的第9個(gè)管腳為浮動(dòng)輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init
38、(GPIOB,&GPIO_InitStructure);/* 函數(shù) SysTick_Configuration* 描述 設(shè)置SysTick*/void SysTick_Configuration(void) /*配置 HCLK 時(shí)鐘做為SysTick 時(shí)鐘源*/
39、60; SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); /系統(tǒng)時(shí)鐘8分頻 72MHz NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 8,2); /*SysTick Interrupt each 1000Hz with HCLK equal to 72MHz*/
40、; SysTick_SetReload(9000);/中斷周期1ms /*Enable the SysTick Interrupt */ SysTick_ITConfig(ENABLE);/打開(kāi)中斷 SysTick_CounterCmd(SysTic
41、k_Counter_Enable); SysTick_CounterCmd(SysTick_Counter_Clear); /* 函數(shù)名 EXTI_Configuration* 描述
42、; 配置EXTI線*/void EXTI_Configuration(void) /*將EXTI線4連接到PD4*/ GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4); /*配置EXTI線4上出現(xiàn)下降沿,則產(chǎn)生中斷*/ E
43、XTI_InitStructure.EXTI_Line = EXTI_Line4; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE;&
44、#160; EXTI_Init(&EXTI_InitStructure); EXTI_GenerateSWInterrupt(EXTI_Line4); /*將EXTI線9連接到PB9上*/ GPIO_EXTILineConfig(GPIO_PortSou
45、rceGPIOB,GPIO_PinSource9); /*將EXTI線9上出現(xiàn)下降沿產(chǎn)生中斷*/ EXTI_InitStructure.EXTI_Line = EXTI_Line9; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStr
46、ucture.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); EXTI_GenerateSWInterrupt(EXTI_Line9);
47、160;中斷函數(shù):void EXTI4_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line4)!= RESET) if(Ledflag = 0)
48、60; Ledflag = 1; GPIOC->ODR |= 0X00000080;
49、160; else Ledflag = 0; GPIOC->ODR &= 0XFFFFFF7F;
50、 EXTI_ClearITPendingBit(EXTI_Line4); /清除EXTI0線路掛起位注:時(shí)鐘設(shè)置的時(shí)候最好加上這句:RCCRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); / 使能AFIO時(shí)鐘=/* *例程名稱:外部中斷實(shí)驗(yàn)實(shí)驗(yàn)硬件:DP-miniSTM32硬件連接:指示燈連接 PA1
51、 按鈕連接 PA3功能描述:本例程實(shí)現(xiàn)外部中斷的輸入試驗(yàn),按下按鈕,指示燈閃爍一下 */#include <stm32f10x_lib.h> / STM32F10x Library Definitions#include "STM32_Init.h" /
52、STM32 Initialization /* 名 稱:Delay()*/void Delay(vu16 cnt) uint16 i,j;for (i=0;i<cnt;i+) for (j=0;j<1000;j+) /* 名 稱:RCC_Configuration()*/void RCC_Configuration(void) ErrorStatus HSEStartUpStatus; /使能外部晶振
53、60; RCC_HSEConfig(RCC_HSE_ON); /等待外部晶振穩(wěn)定 HSEStartUpStatus = RCC_WaitForHSEStartUp(); /如果外部晶振啟動(dòng)成功,則進(jìn)行下一步操作 if(HSEStartUpStatus=SUCCESS) /設(shè)置HCLK(AHB時(shí)鐘)=SYSCL
54、K RCC_HCLKConfig(RCC_SYSCLK_Div1); /PCLK1(APB1) = HCLK/2 RCC_PCLK1Config(RCC_HCLK_Div2); /PCLK2(APB2) = HCLK
55、 RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_4); /啟動(dòng)PLL RCC_PLLCmd(ENABLE);&
56、#160; /等待PLL穩(wěn)定 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET); /系統(tǒng)時(shí)鐘SYSCLK來(lái)自PLL輸出 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
57、; /切換時(shí)鐘后等待系統(tǒng)時(shí)鐘穩(wěn)定 while(RCC_GetSYSCLKSource()!=0x08); /* RCC system reset(for debug purpose) */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO , ENABLE); /給GPIOA和重映射提供時(shí)鐘
58、,注意:一定要設(shè)置RCC_APB2Periph_AFIO/* 名 稱:GPIO_Configuration()*/ void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /*設(shè)置PA3為輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_
59、InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA,&GPIO_InitStructure); /*設(shè)置PA1為輸出*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; G
60、PIO_Init(GPIOA, &GPIO_InitStructure); /* 名 稱:EXTI_Configuration()*/void EXTI_Configuration(void) EXTI_InitTypeDef EXTI_InitStructure; /* Configure EXTI Line3 to generate an interrupt on falling edge */ EXTI_InitStructure.EXTI_Line = EXTI_Line3;
61、; /外部中斷通道3 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; /下降沿觸發(fā) EXTI_InitStructure.EXTI_LineCmd = EN
62、ABLE; /使能 EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3); /將PA3連接到外部中斷通道3/* 名 稱:NVIC_Configuration()*/ void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStru
63、cture;#ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);#else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
64、#endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /搶占式優(yōu)先級(jí)別設(shè)置為無(wú)搶占優(yōu)先級(jí) NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel; /指定中斷源 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; &
65、#160; /指定響應(yīng)優(yōu)先級(jí)別1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /使能外部中斷通道3 NVIC_Init(&NVIC_InitStructure);int main (void) RCC_Configuration(); /配置時(shí)鐘
66、0; GPIO_Configuration(); /配置IO口 NVIC_Configuration(); /中斷配置 EXTI_Configuration(); /外部中斷配置 while(1) /* 說(shuō)明:將LED燈的連接到PA1*/ void EXTI3_IRQHandler (void) if(EXTI_GetITStatus(EXTI_Line3) != RESET)
67、 /添加中斷處理程序 GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0); Delay(1000); GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)1); Delay(1000); EXTI_ClearFlag(EXTI_Line3); /清除中斷標(biāo)志(必須) EXTI_ClearITPendingBit(EXTI_Line3);/ 以上兩條語(yǔ)句作用相同
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 5歲小孩常見(jiàn)病與護(hù)理
- 投行法律培訓(xùn)
- 端午邀約活動(dòng)課件
- 護(hù)理新生培訓(xùn)
- 早產(chǎn)的病因及護(hù)理
- 名著導(dǎo)讀艾青詩(shī)選
- 礦業(yè)采礦培訓(xùn)課件
- 新時(shí)代教育評(píng)價(jià)改革總體方案
- 腫瘤并發(fā)癥感染
- 銀行風(fēng)險(xiǎn)案例培訓(xùn)
- 麥克維爾冷水機(jī)組使用說(shuō)明書
- FIDIC設(shè)計(jì)采購(gòu)施工合同條件銀皮書
- 2022年吉林省中考化學(xué)試卷和答案
- 中央空調(diào)主機(jī)采購(gòu)安裝及售后服務(wù)方案 (投標(biāo)技術(shù)方案)
- 壓床機(jī)構(gòu)設(shè)計(jì)課程設(shè)計(jì)說(shuō)明書-機(jī)械原理課程設(shè)計(jì)
- 公司職員員工宿舍安全衛(wèi)生檢查表
- 通用勞動(dòng)合同
- starion電熱能手術(shù)系統(tǒng)(熱能刀)產(chǎn)品簡(jiǎn)介制作課件
- DB6112∕T 0001-2019 西咸新區(qū)中深層無(wú)干擾地?zé)峁嵯到y(tǒng)應(yīng)用技術(shù)導(dǎo)則
- 國(guó)家開(kāi)放大學(xué)《生活方式與常見(jiàn)疾病預(yù)防》形考任務(wù)1-4參考答案
- 項(xiàng)目監(jiān)理機(jī)構(gòu)人員配置標(biāo)準(zhǔn)試行
評(píng)論
0/150
提交評(píng)論