版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. 本文以USART1為例,表達(dá)串口中斷的編程過(guò)程。1、先來(lái)講述一下在應(yīng)用串口中斷時(shí)涉及到的一些庫(kù)文件。首先對(duì)于STM32外設(shè)庫(kù)文件的應(yīng)用編程,misc.c和stm32f10*_rcc.c是肯定要添加到。接下來(lái)就是我們要用到的相關(guān)外設(shè)了。毫無(wú)疑問(wèn),串口文件stm32f10*_usart.c是必須的。串口通信是對(duì)通用GPIO端口引腳的功能復(fù)用,所以還需要stm32f10*_gpio.c文件。另外,因?yàn)橛兄袛嗟漠a(chǎn)生,所以中斷文件stm32f10*_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)潔明了)。首先時(shí)鐘使能配置。STM32部的時(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_APB2Periph_USA
3、RT1,ENABLE);其次中斷配置。主要有優(yōu)先級(jí)組設(shè)定、USART1中斷使能、該中斷的優(yōu)先級(jí),中斷初始化。程序如下:voidNVIC_Configuration(void)NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/選擇分組方式0/*使能USART1中斷*/NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStruc
4、ture.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);然后GPIO復(fù)用功能配置。一般情況下我們使用原始的外設(shè)和GPIO端口引腳的映射關(guān)系,如果要改變其映射的話,請(qǐng)另外查看參考手冊(cè)上關(guān)于GPIO重映射局部。對(duì)于GPIO的復(fù)用,其引腳的輸入與輸出模式都有要求,在參考手冊(cè)上有詳細(xì)說(shuō)明。voidGPIO_Configuration(void)GPIO_InitTypeDefGPIO_InitStructure;/*配置USART1R*作為浮空輸入*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GP
5、IO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(USARTy_GPIO,&GPIO_InitStructure);/*配置USART1T*作為推挽輸出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(USARTy_GPIO,&GPIO_InitStructure);串口初始化配置。主要有串口根
6、本參數(shù)配置(如波特率、數(shù)據(jù)位、工作方式等),串口中斷使能,串口使能。(1)根本參數(shù)配置USART_InitTypeDefUSART_InitStructure;USART_InitStructure.USART_BaudRate=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_
7、InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;/硬件流控制無(wú)USART_InitStructure.USART_Mode=USART_Mode_R*|USART_Mode_T*;/發(fā)送與承受兩種方式USART_Init(USART1,&USART_InitStructure);/用配置的參數(shù)驚喜串口初始化(2)串口中斷使能USART_ITConfig(USARTy,USART_IT_R*NE,ENABLE);/使能承受中斷,在承受移位存放器中有數(shù)據(jù)是產(chǎn)生USART_ITConfig(USARTy,U
8、SART_IT_T*E,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,chardata),一次只能發(fā)送一個(gè)字符。當(dāng)然我們可以用如下函數(shù)發(fā)送字符串。voidUSART1_Puts(char*str)while(*str)USART_SendData(USART1,*str+);/發(fā)送一個(gè)字符while(USART_GetFlagStatus
9、(USART1,USART_FLAG_T*E)=RESET);/等待發(fā)送完畢當(dāng)然我們也可以循環(huán)發(fā)送字符串?dāng)?shù)組for(i=0;T*Buf1!=0;i+)/T*Buf1為定義好的字符串?dāng)?shù)組USART_SendData(USART2,T*Buf1);while(USART_GetFlagStatus(USART2,USART_FLAG_TC)=RESET);4、接收數(shù)據(jù)由于我們使用的是承受中斷,所以當(dāng)有數(shù)據(jù)需要接收時(shí),會(huì)執(zhí)相應(yīng)的中斷函數(shù)。此處我們USART1的中斷函數(shù)在stm32f10*_it.c文件中。找到函數(shù)voidUSART1_IRQHandler(void),如果沒(méi)有的話就自己加上吧,別忘了
10、頭文件中需要聲明一下。當(dāng)然你也可以在其他文件中寫下該中斷函數(shù)。當(dāng)產(chǎn)生中斷進(jìn)入該函數(shù)之后,我們就可以進(jìn)展自己的操作了。voidUSARTy_IRQHandler(void)if(USART_GetITStatus(USARTy,USART_IT_R*NE)!=RESET)/如果存放器中有數(shù)據(jù)/*Readonebytefromthereceivedataregister*/R*Buffer1R*Counter1+=USART_ReceiveData(USART1);/*if(USART_GetITStatus(USARTy,USART_IT_T*E)!=RESET)USART_SendData(U
11、SARTy,T*Buffer1T*Counter1+);/這個(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_R*NE,DISABLE);/*制止USART1發(fā)送中斷*/USART_ITConfig(USART1,USART_IT_T*E,DISABLE);5、main函數(shù)intmain(void)/這個(gè)地方和特別,我們知道一般m
12、ain函數(shù)是沒(méi)有返回值的,但在STM32/的編程中其返回類型為int。RCC_Configuration();NVIC_Configuration();GPIO_Configuration();USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART
13、_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_R*|USART_Mode_T*;USART_Init(USART1,&USART_InitStructure);USART_ITConfig(USART1,USART_IT_R*NE,ENABLE);/USART_ITConfig(USART1,USART_IT_T*E,ENABLE);USART_Cmd(USART1,ENABLE);while(1)/等待中斷當(dāng)然你
14、也可以在main()中添加一些發(fā)送指令之類的東西。以上容為個(gè)人總結(jié),請(qǐng)注明出處。假設(shè)有錯(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 位表示中斷優(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 priority3
15、bits 次優(yōu)先級(jí)subpriority 。一、配置中斷1、 分配中斷向量表:/* Set the Vector Table base location at 0*20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0*0);2、 設(shè)置中斷優(yōu)先級(jí):NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /設(shè)置中斷優(yōu)先級(jí)3、 初始化外部中斷:/*允許E*TI4中斷 */NVIC_InitStructure.NVIC_IRQChannel = E*TI4_IRQChannel; /中斷通道NVIC_InitStr
16、ucture.NVIC_IRQChannelPreemptionPriority=PreemptionPriorityValue;/占先優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /響應(yīng)次級(jí)優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /通道中斷使能NVIC_Init(&NVIC_InitStructure); /初始化中斷注意:如果我們配置的外部針腳為PA4,或PB4,或PC4,PD4等,則采用的外部中斷也必須是E*TI4,同樣,如果外部中斷針腳是PA1,PB1,PC1,P
17、D1 則中斷就要用E*TI1,其他類推。二、配置GPIO針腳作為外部中斷的觸發(fā)事件1、 選擇IO針腳GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;注意,如果的針腳是端口的4號(hào)針腳,配置的中斷一定是E*TI42、 配置針腳為輸入GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;3、 初始化針腳GPIO_Init(GPIOD,&GPIO_InitStructure);3配置E*TI線,使中斷線和IO針腳線連接上1、 將E*TI線連接到IO端口上將E*TI線4連接到端口GPIOD的第4個(gè)針腳上GPIO_E*T
18、ILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4);注意:如果配置的針腳是4號(hào),則參數(shù)必須是GPIO_PinSource4如果配置的針腳是3號(hào),則參數(shù)必須是GPIO_PinSource32、配置中斷邊沿 /*配置E*TI線4上出現(xiàn)下降沿,則產(chǎn)生中斷*/ E*TI_InitStructure.E*TI_Line = E*TI_Line4; 注意:如果配置的4號(hào)針腳,則E*TI_Line4是必須的 E*TI_InitStructure.E*TI_Mode = E*TI_Mode_Interrupt; E*TI_InitStructure.E*TI_T
19、rigger = E*TI_Trigger_Falling; /下降沿觸發(fā) E*TI_InitStructure.E*TI_LineCmd = ENABLE; /中斷線使能 E*TI_Init(&E*TI_InitStructure); /初始化中斷 E*TI_GenerateSWInterrupt(E*TI_Line4); /E*TI_Line4中斷允許到此中斷配置完成,可以寫中斷處理函數(shù)。舉例:配置函數(shù)/* 函數(shù)名 NVIC_Configration* 描述 配置各個(gè)中斷存放器*/void NVIC_Configration(void) NVIC_InitTypeDef NVIC_Init
20、Structure;/#ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0*20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0*0);/#else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0*08000000 */ /NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0*0);/#endif NVIC_PriorityGroupConfig(NVIC_Prio
21、rityGroup_0); /設(shè)置中斷優(yōu)先級(jí) /*允許E*TI4中斷 */ NVIC_InitStructure.NVIC_IRQChannel = E*TI4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = PreemptionPriorityValue; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure
22、); /*允許E*TI9中斷*/ NVIC_InitStructure.NVIC_IRQChannel = E*TI9_5_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /*配置SysTick處理優(yōu)先級(jí):優(yōu)先級(jí)以及子優(yōu)先級(jí)*/* 函數(shù)名GPIO
23、_Configuration(void)* 描述配置TIM2針腳*/void GPIO_Configuration(void)/* GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin= GPIO_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_Init
24、Structure); */ 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,&GPIO_InitStructure); /*配置GPIOD的第一個(gè)管角為浮動(dòng)輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode
25、_IN_FLOATING; GPIO_Init(GPIOD,&GPIO_InitStructure); /*配置GPIOB的第9個(gè)管腳為浮動(dòng)輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB,&GPIO_InitStructure);/* 函數(shù) SysTick_Configuration* 描述 設(shè)置SysTick*/void SysTick_Configuration(void) /*配置 HCLK 時(shí)鐘做為Sy
26、sTick 時(shí)鐘源*/ 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*/ SysTick_SetReload(9000);/中斷周期1ms /*Enable the SysTick Interrupt */ SysTick_ITConfig(ENABLE);/翻開(kāi)中斷
27、SysTick_CounterCmd(SysTick_Counter_Enable); SysTick_CounterCmd(SysTick_Counter_Clear); /* 函數(shù)名 E*TI_Configuration* 描述 配置E*TI線*/void E*TI_Configuration(void) /*將E*TI線4連接到PD4*/ GPIO_E*TILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4); /*配置E*TI線4上出現(xiàn)下降沿,則產(chǎn)生中斷*/ E*TI_InitStructure.E*TI_Line = E*TI_Line4;
28、 E*TI_InitStructure.E*TI_Mode = E*TI_Mode_Interrupt; E*TI_InitStructure.E*TI_Trigger = E*TI_Trigger_Falling; E*TI_InitStructure.E*TI_LineCmd = ENABLE; E*TI_Init(&E*TI_InitStructure); E*TI_GenerateSWInterrupt(E*TI_Line4); /*將E*TI線9連接到PB9上*/ GPIO_E*TILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9); /
29、*將E*TI線9上出現(xiàn)下降沿產(chǎn)生中斷*/ E*TI_InitStructure.E*TI_Line = E*TI_Line9; E*TI_InitStructure.E*TI_Mode = E*TI_Mode_Interrupt; E*TI_InitStructure.E*TI_Trigger = E*TI_Trigger_Falling; E*TI_InitStructure.E*TI_LineCmd = ENABLE; E*TI_Init(&E*TI_InitStructure); E*TI_GenerateSWInterrupt(E*TI_Line9); 中斷函數(shù):void E*TI4_
30、IRQHandler(void) if(E*TI_GetITStatus(E*TI_Line4)!= RESET) if(Ledflag = 0) Ledflag = 1; GPIOC-ODR |= 0*00000080; elseLedflag = 0; GPIOC-ODR &= 0*FFFFFF7F;E*TI_ClearITPendingBit(E*TI_Line4); /去除E*TI0線路掛起位注:時(shí)鐘設(shè)置的時(shí)候最好加上這句:RCCRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); / 使能AFIO時(shí)鐘=/* *例程名稱:外部中斷實(shí)驗(yàn)
31、實(shí)驗(yàn)硬件:DP-miniSTM32硬件連接:指示燈連接 PA1 按鈕連接 PA3功能描述:本例程實(shí)現(xiàn)外部中斷的輸入試驗(yàn),按下按鈕,指示燈閃爍一下 */#include / STM32F10* Library Definitions#include STM32_Init.h / STM32 Initialization/* 名 稱:Delay()*/void Delay(vu16t) uint16 i,j;for (i=0;it;i+) for (j=0;j1000;j+) /* 名 稱:RCC_Configuration()*/void RCC_Configuration(void) Erro
32、rStatus HSEStartUpStatus; /使能外部晶振 RCC_HSEConfig(RCC_HSE_ON); /等待外部晶振穩(wěn)定 HSEStartUpStatus = RCC_WaitForHSEStartUp(); /如果外部晶振啟動(dòng)成功,則進(jìn)展下一步操作 if(HSEStartUpStatus=SUCCESS) /設(shè)置HCLKAHB時(shí)鐘=SYSCLK RCC_HCLKConfig(RCC_SYSCLK_Div1); /PCLK1(APB1) = HCLK/2 RCC_PCLK1Config(RCC_HCLK_Div2); /PCLK2(APB2) = HCLK RCC_PCLK
33、2Config(RCC_HCLK_Div1); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_4); /啟動(dòng)PLL RCC_PLLCmd(ENABLE); /等待PLL穩(wěn)定 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET); /系統(tǒng)時(shí)鐘SYSCLK來(lái)自PLL輸出 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /切換時(shí)鐘后等待系統(tǒng)時(shí)鐘穩(wěn)定 while(RCC_GetSYSCLKSource()!=0*08); /* RCC system reset(for
34、 debug purpose) */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO , ENABLE); /給GPIOA和重映射提供時(shí)鐘,注意:一定要設(shè)置RCC_APB2Periph_AFIO/* 名 稱:GPIO_Configuration()*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /*設(shè)置PA3為輸入*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStr
35、ucture.GPIO_Speed = GPIO_Speed_10MHz; GPIO_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; GPIO_Init(GPIOA,
36、 &GPIO_InitStructure);/* 名 稱:E*TI_Configuration()*/void E*TI_Configuration(void) E*TI_InitTypeDef E*TI_InitStructure; /* Configure E*TI Line3 to generate an interrupt on falling edge */ E*TI_InitStructure.E*TI_Line = E*TI_Line3; /外部中斷通道3 E*TI_InitStructure.E*TI_Mode = E*TI_Mode_Interrupt; E*TI_InitS
37、tructure.E*TI_Trigger = E*TI_Trigger_Falling; /下降沿觸發(fā) E*TI_InitStructure.E*TI_LineCmd = ENABLE; /使能 E*TI_Init(&E*TI_InitStructure);GPIO_E*TILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3); /將PA3連接到外部中斷通道3/* 名 稱:NVIC_Configuration()*/void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure;
38、#ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0*20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0*0);#else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0*08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0*0); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
39、 /搶占式優(yōu)先級(jí)別設(shè)置為無(wú)搶占優(yōu)先級(jí) NVIC_InitStructure.NVIC_IRQChannel = E*TI3_IRQChannel; /指定中斷源 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /指定響應(yīng)優(yōu)先級(jí)別1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /使能外部中斷通道3 NVIC_Init(&NVIC_InitStructure);int main (void)RCC_Configuration(); /配置時(shí)鐘GPIO_Configuration(); /配置I
40、O口NVIC_Configuration(); /中斷配置E*TI_Configuration(); /外部中斷配置while(1) /* 說(shuō)明:將LED燈的連接到PA1*/ void E*TI3_IRQHandler (void) if(E*TI_GetITStatus(E*TI_Line3) != RESET) /添加中斷處理程序 GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0); Delay(1000); GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)1); Delay(1000);E*TI_ClearFlag(E*TI_Line3); /去除中斷標(biāo)志必須 E*TI_ClearITPendingBit(E*TI_Line3);/ 以上兩條語(yǔ)句作用一樣 =在使用E*TI的時(shí)候,因?yàn)闆](méi)有開(kāi)啟時(shí)鐘沒(méi)有開(kāi)啟RCC_APB2Periph_AFIO時(shí)鐘,讓我調(diào)試吃了不少苦頭,看來(lái)還要好好看看stm32的時(shí)鐘啊現(xiàn)在給出我的e*ti8的配置首先一定要記得配置RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); / 使能AFIO時(shí)鐘/GPIOB8作為中斷腳,配置為浮空輸入void GPIO_Configur
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(汽車檢測(cè)與維修)空調(diào)系統(tǒng)故障診斷技術(shù)試題及答案
- 2025年高職藥物制劑技術(shù)(制劑工藝進(jìn)階)試題及答案
- 2025年高職計(jì)算機(jī)應(yīng)用(多媒體課件制作)試題及答案
- 2025年中職第一學(xué)年(汽車鈑金)車身凹陷修復(fù)階段測(cè)試試題及答案
- 2025年大學(xué)大四(智能制造)生產(chǎn)線調(diào)試專項(xiàng)測(cè)試題及答案
- 2025年中職數(shù)控加工技術(shù)(數(shù)控應(yīng)用)試題及答案
- 2025年高職畜牧獸醫(yī)(養(yǎng)殖場(chǎng)管理)試題及答案
- 2025年大學(xué)大一(自動(dòng)化)自動(dòng)控制原理階段測(cè)試試題及答案
- 2025年本科金屬材料工程(金屬材料設(shè)計(jì))試題及答案
- 2025年大學(xué)第二學(xué)年(物流工程)物流成本控制試題及答案
- 爆破作業(yè)危險(xiǎn)性較大分部分項(xiàng)工程清單及安全措施
- 體育工作會(huì)議匯報(bào)
- 爺孫斷絕協(xié)議書(shū)
- 鐵道運(yùn)輸組織管理課件
- 網(wǎng)約車行業(yè)合規(guī)管理制度
- 六年級(jí)上冊(cè)語(yǔ)文1-8單元習(xí)作范文
- 燃?xì)夤こ探ㄔO(shè)管理辦法
- 2025護(hù)士相關(guān)法律法規(guī)培訓(xùn)
- 企業(yè)專項(xiàng)資金管理制度
- 2022藍(lán)天消防JB-QB-5SI型火火報(bào)警控制器用戶手冊(cè)
- 百貨物業(yè)裝修管理流程
評(píng)論
0/150
提交評(píng)論