stm32 串口中斷總結(jié)_第1頁
stm32 串口中斷總結(jié)_第2頁
stm32 串口中斷總結(jié)_第3頁
stm32 串口中斷總結(jié)_第4頁
stm32 串口中斷總結(jié)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、本文以USART1為例,敘述串口中斷的編程過程。1、先來講述一下在應(yīng)用串口中斷時涉及到的一些庫文件。首先對于STM32外設(shè)庫文件的應(yīng)用編程,misc.c和stm32f10x_rcc.c是肯定要添加到。接下來就是我們要用到的相關(guān)外設(shè)了。毫無疑問,串口文件stm32f10x_usart.c是必須的。串口通信是對通用GPIO端口引腳的功能復(fù)用,所以還需要stm32f10x_gpio.c文件。另外,因為有中斷的產(chǎn)生,所以中斷文件stm32f10x_it.c也是必要的,當(dāng)然這個文件一般和main.c放在一個文件夾下(一般習(xí)慣為User文件夾),因為我們的中斷響應(yīng)函數(shù)是要在里面自己編寫的。當(dāng)然還有其他的基

2、本必須文件如系統(tǒng)配置文件等在這地方就不說了,這個是創(chuàng)建一個工程應(yīng)該知道的。2、初始化對于串口通信的初始化,不僅僅只是對串口的初始化(這個地方是比較煩人的,不像別的芯片那樣簡潔明了)。l 首先時鐘使能配置。STM32內(nèi)部的時鐘有很多,感興趣的自己看看參考手冊。此處以USART1為例說明。有USART1時鐘、GPIOA時鐘、GPIO復(fù)用(AFIO)時鐘。由于此處USART1和GPIOA、AFIO均在APB2上,所以可以一次配置完成。如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Peri

3、ph_USART1 ,ENABLE);l 其次中斷配置。主要有優(yōu)先級組設(shè)定、USART1中斷使能、該中斷的優(yōu)先級,中斷初始化。程序如下: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、系,如果要改變其映射的話,請另外查看參考手冊上關(guān)于GPIO重映射部分。對于GPIO的復(fù)用,其引腳的輸入與輸出模式都有要求,在參考手冊上有詳細(xì)說明。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ù)長度USART_InitStructure.USART_StopBits = USART_StopBits_1;/停止位USART_InitStructure.USART_Parity = USART_Parity_No;/校驗USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowContr

9、ol_None; /硬件流控制無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)過以上不走之后呢,我們就可以進(jìn)行數(shù)據(jù)的收發(fā)了。3、發(fā)送數(shù)據(jù)使用函數(shù)USART_SendData(USART1, char data),一次只能發(fā)送一個字符。當(dāng)然我們可以用如下函數(shù)發(fā)送字符串。void USART1_Puts(char * str

11、)  while(*str)  USART_SendData(USART1, *str+);  /發(fā)送一個字符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ù)需要接收時,會執(zhí)相應(yīng)的中斷函數(shù)。此處我們USART1的中斷函數(shù)在stm32f10x_it.c文件中。找到函數(shù)void USART1_IRQHandler(void),如果沒有的話就自己加上吧,別忘了頭文件中需要聲明一下。當(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;/這個地方那個之所以把這個寫出來主要是想說發(fā)送中斷和接受中斷其實是共用一個/中斷函數(shù)的,到底是那個中斷發(fā)生了呢,這就需要我們讀取中斷狀態(tài)標(biāo)志來識別了。*/別忘了在接受完數(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) /這個地方和特別,我們知道一般main函數(shù)是沒有返回值的,但在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)容為個人總結(jié),轉(zhuǎn)載請注明出處。若有錯誤,本人概不負(fù)任何責(zé)任。STM32 外部中斷配NVIC_Configuration 函數(shù)實現(xiàn)配置嵌套向量中斷中斷優(yōu)先級并使能中斷。其中的NVIC_PriorityGroupConfig 函數(shù)配置中斷優(yōu)先級的組織方式,STM32 的嵌套向量中斷控制器可以配置 16 個可編程的優(yōu)先等級,使用了 4 位表

20、示中斷優(yōu)先級(2 的 4 此方就是 16),16 個可編程的優(yōu)先等級又可以分為主優(yōu)先級和次優(yōu)先級,例如參數(shù) NVIC_PriorityGroup_1表示 1bit 主優(yōu)先級(pre-emption priority)3 bits 次優(yōu)先級(subpriority )。一、配置中斷1、 分配中斷向量表:/* Set the Vector Table base location at 0x20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);2、 設(shè)置中斷優(yōu)先級:NVIC_PriorityGroupConfig(NVIC_PriorityGro

21、up_0); /設(shè)置中斷優(yōu)先級3、 初始化外部中斷:/*允許EXTI4中斷 */NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel; /中斷通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= PreemptionPriorityValue; /占先優(yōu)先級NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /響應(yīng)(次級)優(yōu)先級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號針腳,配置的中斷一定是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個針腳上      GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4);注意:如果配置的針腳是4號,那么參數(shù)必須是GPIO_PinSource4   

24、60;         如果配置的針腳是3號,那么參數(shù)必須是GPIO_PinSource32、配置中斷邊沿       /*配置EXTI線4上出現(xiàn)下降沿,則產(chǎn)生中斷*/      EXTI_InitStructure.EXTI_Line = EXTI_Line4;       注意:如果配置的4號針腳,那么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* 描述          配置各個中斷寄存器*/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)先級       /*允許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)先級:優(yōu)先級以及子優(yōu)先級*/* 函數(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的第一個管角為浮動輸入*/       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;       GPIO_Init(GPIO

37、D,&GPIO_InitStructure);       /*配置GPIOB的第9個管腳為浮動輸入*/       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 時鐘做為SysTick 時鐘源*/   

39、60;   SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); /系統(tǒng)時鐘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);/打開中斷                 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è)置的時候最好加上這句:RCCRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); / 使能AFIO時鐘=/* *例程名稱:外部中斷實驗實驗硬件:DP-miniSTM32硬件連接:指示燈連接  PA1 

51、         按鈕連接    PA3功能描述:本例程實現(xià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();    /如果外部晶振啟動成功,則進(jìn)行下一步操作    if(HSEStartUpStatus=SUCCESS)            /設(shè)置HCLK(AHB時鐘)=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);        /啟動PLL        RCC_PLLCmd(ENABLE);&

56、#160;       /等待PLL穩(wěn)定        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET);        /系統(tǒng)時鐘SYSCLK來自PLL輸出        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  

57、;      /切換時鐘后等待系統(tǒng)時鐘穩(wěn)定        while(RCC_GetSYSCLKSource()!=0x08);        /* RCC system reset(for debug purpose) */  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO , ENABLE); /給GPIOA和重映射提供時鐘

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)先級別設(shè)置為無搶占優(yōu)先級  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;    /指定中斷源  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;   &

65、#160;    /指定響應(yīng)優(yōu)先級別1  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         /使能外部中斷通道3  NVIC_Init(&NVIC_InitStructure);int main (void) RCC_Configuration();  /配置時鐘         

66、0;     GPIO_Configuration(); /配置IO口 NVIC_Configuration(); /中斷配置 EXTI_Configuration(); /外部中斷配置 while(1)     /* 說明:將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);/ 以上兩條語句作用相同     &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論