stm32串口中断总结23013.pdf

上传人:得****3 文档编号:83658402 上传时间:2023-03-31 格式:PDF 页数:14 大小:703.50KB
返回 下载 相关 举报
stm32串口中断总结23013.pdf_第1页
第1页 / 共14页
stm32串口中断总结23013.pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《stm32串口中断总结23013.pdf》由会员分享,可在线阅读,更多相关《stm32串口中断总结23013.pdf(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、.本文以 USART1 为例,表达串口中断的编程过程。1、先来讲述一下在应用串口中断时涉及到的一些库文件。首先对于 STM32 外设库文件的应用编程,misc.c 和 stm32f10*_rcc.c 是肯定要添加到。接下来就是我们要用到的相关外设了。毫无疑问,串口文件 stm32f10*_usart.c 是必须的。串口通信是对通用 GPIO 端口引脚的功能复用,所以还需要 stm32f10*_gpio.c 文件。另外,因为有中断的产生,所以中断文件 stm32f10*_it.c 也是必要的,当然这个文件一般和main.c 放在一个文件夹下(一般习惯为 User 文件夹),因为我们的中断响应函数

2、是要在里面自己编写的。当然还有其他的根本必须文件如系统配置文件等在这地方就不说了,这个是创立一个工程应该知道的。2、初始化 对于串口通信的初始化,不仅仅只是对串口的初始化(这个地方是比拟烦人的,不像别的芯片那样简洁明了)。首先时钟使能配置。STM32 部的时钟有很多,感兴趣的自己看看参考手册。此处以USART1 为例说明。有 USART1 时钟、GPIOA 时钟、GPIO 复用(AFIO)时钟。由于此处USART1 和 GPIOA、AFIO 均在 APB2 上,所以可以一次配置完成。如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2P

3、eriph_AFIO|RCC_APB2Periph_USART1,ENABLE);其次中断配置。主要有优先级组设定、USART1 中断使能、该中断的优先级,中断初始化。程序如下:void NVIC_Configuration(void)NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/选择分组方式 0 /*使能 USART1 中断*/NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IR

4、QChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);然后 GPIO 复用功能配置。一般情况下我们使用原始的外设和 GPIO 端口引脚的映射关系,如果要改变其映射的话,请另外查看参考手册上关于 GPIO 重映射局部。对于 GPIO 的复用,其引脚的输入与输出模式都有要求,在参考手册上有详细说明。void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;/*配置 USART1 R*作为

5、浮空输入*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(USARTy_GPIO,&GPIO_InitStructure);/*配置 USART1 T*作为推挽输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;.GPIO_I

6、nit(USARTy_GPIO,&GPIO_InitStructure);串口初始化配置。主要有串口根本参数配置(如波特率、数据位、工作方式等),串口中断使能,串口使能。(1)根本参数配置 USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate=9600;/波特率 USART_InitStructure.USART_WordLength=USART_WordLength_8b;/数据长度 USART_InitStructure.USART_StopBits=USART_StopBits_1;/停顿位 US

7、ART_InitStructure.USART_Parity=USART_Parity_No;/校验 USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;/硬件流控制无 USART_InitStructure.USART_Mode=USART_Mode_R*|USART_Mode_T*;/发送与承受两种方式 USART_Init(USART1,&USART_InitStructure);/用配置的参数惊喜串口初始化(2)串口中断使能 USART_ITConfig(USARTy,USART_IT

8、_R*NE,ENABLE);/使能承受中断,在承受移位存放器中有数据是产生 USART_ITConfig(USARTy,USART_IT_T*E,ENABLE);/使能发送中断,在发送完数据后产生。一般情况下,如果与 PC 通信的话,我们只用承受中断即可。(3)串口使能 USART_Cmd(USART1,ENABLE);/USART1 使能 好了,经过以上不走之后呢,我们就可以进展数据的收发了。3、发送数据 使用函数 USART_SendData(USART1,chardata),一次只能发送一个字符。当然我们可以用如下函数发送字符串。void USART1_Puts(char*str)whi

9、le(*str)USART_SendData(USART1,*str+);/发送一个字符 while(USART_GetFlagStatus(USART1,USART_FLAG_T*E)=RESET);/等待发送完毕 当然我们也可以循环发送字符串数组 for(i=0;T*Buf1!=0;i+)/T*Buf1为定义好的字符串数组 USART_SendData(USART2 ,T*Buf1);while(USART_GetFlagStatus(USART2,USART_FLAG_TC)=RESET);4、接收数据.由于我们使用的是承受中断,所以当有数据需要接收时,会执相应的中断函数。此处我们USA

10、RT1的 中 断 函 数 在stm32f10*_it.c文 件 中。找 到 函 数void USART1_IRQHandler(void),如果没有的话就自己加上吧,别忘了头文件中需要声明一下。当然你也可以在其他文件中写下该中断函数。当产生中断进入该函数之后,我们就可以进展自己的操作了。void USARTy_IRQHandler(void)if(USART_GetITStatus(USARTy,USART_IT_R*NE)!=RESET)/如果存放器中有数据 /*Read one byte from the receive data register */R*Buffer1R*Counter

11、1+=USART_ReceiveData(USART1);/*if(USART_GetITStatus(USARTy,USART_IT_T*E)!=RESET)USART_SendData(USARTy,T*Buffer1T*Counter1+);/这个地方那个之所以把这个写出来主要是想说发送中断和承受中断其实是共用一个/中断函数的,到底是那个中断发生了呢,这就需要我们读取中断状态标志来识别了。*/别忘了在承受完数据进展别的操作之前为了防止数据被覆盖最好先制止一下承受中断/*制止 USART1接收中断 */USART_ITConfig(USART1,USART_IT_R*NE,DISABLE)

12、;/*制止 USART1发送中断 */USART_ITConfig(USART1,USART_IT_T*E,DISABLE);5、main函数 int main(void)/这个地方和特别,我们知道一般 main 函数是没有返回值的,但在STM32/的编程中其返回类型为 int。RCC_Configuration();NVIC_Configuration();GPIO_Configuration();USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;U

13、SART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode =USART_Mode_R*|USART_Mode_T*;USART_Init(USART1,&USART_InitStructure);USART_ITConfig(USART1,U

14、SART_IT_R*NE,ENABLE);/USART_ITConfig(USART1,USART_IT_T*E,ENABLE);USART_Cmd(USART1,ENABLE);.while(1)/等待中断 当然你也可以在main()中添加一些发送指令之类的东西。以上容为个人总结,请注明出处。假设有错误,本人概不负任何责任。STM32 外部中断配 NVIC_Configuration 函数实现配置嵌套向量中断中断优先级并使能中断。其中的NVIC_PriorityGroupConfig 函数配置中断优先级的组织方式,STM32 的嵌套向量中断控制器可以配置 16 个可编程的优先等级,使用了 4

15、 位表示中断优先级2 的 4 此方就是 16,16 个 可 编 程 的 优 先 等 级 又 可 以 分 为 主 优 先 级 和 次 优 先 级,例 如 参 数 NVIC_PriorityGroup_1 表示 1bit 主优先级pre-emption priority3 bits 次优先级subpriority。一、配置中断 1、分配中断向量表:/*Set the Vector Table base location at 0*20000000*/NVIC_SetVectorTable(NVIC_VectTab_RAM,0*0);2、设置中断优先级:NVIC_PriorityGroupConfi

16、g(NVIC_PriorityGroup_0);/设置中断优先级 3、初始化外部中断:/*允许 E*TI4 中断*/NVIC_InitStructure.NVIC_IRQChannel=E*TI4_IRQChannel;/中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=PreemptionPriorityValue;/占先优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;/响 应 次 级 优 先 级NVIC_InitStructure.NVIC_IRQChannelCmd=

17、ENABLE;/通道中断使能 NVIC_Init(&NVIC_InitStructure);/初始化中断 注意:如果我们配置的外部针脚为 PA4,或 PB4,或 PC4,PD4 等,则采用的外部中断也必须是 E*TI4,同样,如果外部中断针脚是 PA1,PB1,PC1,PD1 则中断就要用 E*TI1,其他类推。二、配置 GPIO 针脚作为外部中断的触发事件 1、选择 IO 针脚 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;注意,如果的针脚是端口的 4 号针脚,配置的中断一定是 E*TI4 2、配置针脚为输入 GPIO_InitStructure.GPIO_M

18、ode=GPIO_Mode_IN_FLOATING;3、初始化针脚 GPIO_Init(GPIOD,&GPIO_InitStructure);3 配置 E*TI 线,使中断线和 IO 针脚线连接上 1、将 E*TI 线连接到 IO 端口上 将E*TI线4连接到端口GPIOD的第4个针脚上.GPIO_E*TILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4);注意:如果配置的针脚是 4 号,则参数必须是 GPIO_PinSource4 如果配置的针脚是 3 号,则参数必须是 GPIO_PinSource3 2、配置中断边沿 /*配置 E*TI 线 4

19、 上出现下降沿,则产生中断*/E*TI_InitStructure.E*TI_Line=E*TI_Line4;注意:如果配置的 4 号针脚,则 E*TI_Line4 是必须的 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_GenerateSWInte

20、rrupt(E*TI_Line4);/E*TI_Line4 中断允许 到此中断配置完成,可以写中断处理函数。举例:配置函数/*函数名 NVIC_Configration*描述 配置各个中断存放器*/void NVIC_Configration(void)NVIC_InitTypeDef NVIC_InitStructure;/#ifdef VECT_TAB_RAM /*Set the Vector Table base location at 0*20000000*/NVIC_SetVectorTable(NVIC_VectTab_RAM,0*0);/#else/*VECT_TAB_FLASH

21、*/*Set the Vector Table base location at 0*08000000*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0*0);/#endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/设置中断优先级 /*允许 E*TI4 中断*/NVIC_InitStructure.NVIC_IRQChannel=E*TI4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=PreemptionPriorityV

22、alue;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);/*允许 E*TI9 中断*/.NVIC_InitStructure.NVIC_IRQChannel=E*TI9_5_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=

23、1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);/*配置 SysTick 处理优先级:优先级以及子优先级*/*函数名 GPIO_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_In

24、itStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);*/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);/*配置 G

25、PIOD 的第一个管角为浮动输入*/.GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOD,&GPIO_InitStructure);/*配置 GPIOB 的第 9 个管脚为浮动输入*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);/

26、*函数 SysTick_Configuration *描述 设置 SysTick */void SysTick_Configuration(void)/*配置 HCLK 时钟做为 SysTick 时钟源*/SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);/系统时钟 8 分频 72MHz NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick,8,2);/*SysTick Interrupt each 1000Hz with HCLK equal to 72MHz*/SysTick_S

27、etReload(9000);/中断周期 1ms /*Enable the SysTick Interrupt*/SysTick_ITConfig(ENABLE);/翻开中断 SysTick_CounterCmd(SysTick_Counter_Enable);.SysTick_CounterCmd(SysTick_Counter_Clear);/*函数名 E*TI_Configuration *描述 配置 E*TI 线 */void E*TI_Configuration(void)/*将 E*TI 线 4 连接到 PD4*/GPIO_E*TILineConfig(GPIO_PortSourc

28、eGPIOD,GPIO_PinSource4);/*配置 E*TI 线 4 上出现下降沿,则产生中断*/E*TI_InitStructure.E*TI_Line=E*TI_Line4;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)

29、;/*将 E*TI 线 9 连接到 PB9 上*/GPIO_E*TILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);/*将 E*TI 线 9 上出现下降沿产生中断*/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(

30、&E*TI_InitStructure);E*TI_GenerateSWInterrupt(E*TI_Line9);中断函数:void E*TI4_IRQHandler(void)if(E*TI_GetITStatus(E*TI_Line4)!=RESET)if(Ledflag=0)Ledflag=1;GPIOC-ODR|=0*00000080;else Ledflag=0;GPIOC-ODR&=0*FFFFFF7F;E*TI_ClearITPendingBit(E*TI_Line4);/去除 E*TI0 线路挂起位 注:时钟设置的时候最好加上这句:RCCRCC_APB2PeriphClock

31、Cmd(RCC_APB2Periph_AFIO,ENABLE);/使能 AFIO 时钟 =/*.例程名称:外部中断实验 实验硬件:DP-miniSTM32 硬件连接:指示灯连接 PA1 按钮连接 PA3 功能描述:本例程实现外部中断的输入试验,按下按钮,指示灯闪烁一下 */#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+)/*名 称:R

32、CC_Configuration()*/void RCC_Configuration(void)ErrorStatus HSEStartUpStatus;/使能外部晶振 RCC_HSEConfig(RCC_HSE_ON);/等待外部晶振稳定 HSEStartUpStatus=RCC_WaitForHSEStartUp();/如果外部晶振启动成功,则进展下一步操作 if(HSEStartUpStatus=SUCCESS)/设置 HCLKAHB 时钟=SYSCLK RCC_HCLKConfig(RCC_SYSCLK_Div1);./PCLK1(APB1)=HCLK/2 RCC_PCLK1Confi

33、g(RCC_HCLK_Div2);/PCLK2(APB2)=HCLK RCC_PCLK2Config(RCC_HCLK_Div1);RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_4);/启动 PLL RCC_PLLCmd(ENABLE);/等待 PLL 稳定 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=RESET);/系统时钟 SYSCLK 来自 PLL 输出 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/切换时钟后等待系统时钟稳定 while(RCC_GetSYSC

34、LKSource()!=0*08);/*RCC system reset(for debug purpose)*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);/给 GPIOA 和重映射提供时钟,注意:一定要设置 RCC_APB2Periph_AFIO /*名 称:GPIO_Configuration()*/void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;/*设置 PA3 为输入*/GPIO_InitStructur

35、e.GPIO_Pin=GPIO_Pin_3;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);/*设置 PA1 为输出*/GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Ou

36、t_PP;GPIO_Init(GPIOA,&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;

37、E*TI_InitStructure.E*TI_Trigger=E*TI_Trigger_Falling;/下降沿触发 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_InitStruct

38、ure;#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、设置为无抢占优先级 NVIC_InitStructure.NVIC_IRQChannel=E*TI3_IRQChannel;/指定中断源 NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;/指定响应优先级别 1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/使能外部中断通道 3 NVIC_Init(&NVIC_InitStructure);int main(void).RCC_Configuration();/配置时钟 GPIO_Configuration();/配置 IO 口 NVIC_Configu

40、ration();/中断配置 E*TI_Configuration();/外部中断配置 while(1)/*说明:将 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);/去除中断标志必须

41、 E*TI_ClearITPendingBit(E*TI_Line3);/以上两条语句作用一样 =在使用 E*TI 的时候,因为没有开启时钟没有开启 RCC_APB2Periph_AFIO 时钟,让我调试吃了不少苦头,看来还要好好看看 stm32 的时钟啊 现在给出我的 e*ti8 的配置 首先一定要记得配置 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);/使能 AFIO 时钟 /GPIOB8 作为中断脚,配置为浮空输入 void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStru

42、cture;/*Configure PB8 as input floating*/.GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);继续配置 NVIC void NVIC_Configuration(void)NVIC_InitTypeDef NVIC_InitStructure;NVIC_Init

43、Structure.NVIC_IRQChannel=E*TI9_5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);/*Configure the NVIC Preemption Priority Bits*/NVIC_PriorityGroupConfig(NVIC_Prior

44、ityGroup_0);/*Set the Vector Table base location at 0*08000000*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0*0);然后配置 E*TI,把 PB8 连接到 E*TI void E*TI_Configuration(void)E*TI_InitTypeDef E*TI_InitStructure;/*connect PB8 to E*TI*/GPIO_E*TILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource8);/*Config E*TI8*/E*TI_

45、InitStructure.E*TI_Line=E*TI_Line8;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_Line8);这样就可以中断了,在中断函数里面记得去除标志位 void E*TI9_5_IRQHandler(void)if(E*TI_GetITStatus(E*TI_Line8)!=RESET)E*TI_ClearITPendingBit(E*TI_Line8);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com