STM32F103中断和定时器程序

上传人:cl****1 文档编号:494567404 上传时间:2023-06-14 格式:DOC 页数:6 大小:128KB
返回 下载 相关 举报
STM32F103中断和定时器程序_第1页
第1页 / 共6页
STM32F103中断和定时器程序_第2页
第2页 / 共6页
STM32F103中断和定时器程序_第3页
第3页 / 共6页
STM32F103中断和定时器程序_第4页
第4页 / 共6页
STM32F103中断和定时器程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《STM32F103中断和定时器程序》由会员分享,可在线阅读,更多相关《STM32F103中断和定时器程序(6页珍藏版)》请在金锄头文库上搜索。

1、STM32中断程序/*=*名称:main.c*功能:*入口参数:*说明:去掉stm32f10x_conf.h里#includestm32f10x_tim.h注释*范例:*编者时间:Ye.FuYao2012-9-23*/#includestm32f10x.h#include12864.hErrorStatusHSEStartUpStatus;/等待时钟的稳定u8count=0;u8d;voidSYS_Configuration(void);/*/ms延时函数voiddelayms(unsignedintnValue)/delay1msat8MunsignedintnCount;unsignedi

2、ntii;unsignedintjj;nCount=1980;for(ii=nValue;ii0;ii-)for(jj=nCount;jj0;jj-)Delay(1);*/GPIO管脚初始化配置voidGPIO_Configuration(void)GPIO_InitTypeDefGPIO_InitStructure;/GPIO状态恢复默认参数管脚位置定义管脚位置定义/*GPIO口配置每四行一组,每组GPIO属性相同,默认情况:ALL,2MHZFLATING*/*PA-2-3配置为输出*/设置输出模式输出速度为50MHZ/A组GPIO初始化管脚位置定义/设置输出模式GPIO_InitStruc

3、ture.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7;/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/GPIO_Init(GPIOA,&GPIO_InitStructure);/*PB-2配置为输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPI

4、O_Speed=GPIO_Speed_50MHz;/输出速度为50MHZGPIO_Init(GPIOB,&GPIO_InitStructure);B组GPIO初始化/*PA-0配置为输入外部中断引脚*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);/*=voidNVIC_Configuration(void)voidNVIC_Configuration(void)/嵌套中断向量控制配置*名

5、称:NVIC_Configuration()*功能:外部中断嵌套控制*入口参数:*说明:放入主函数里初始化*范例:*编者时间:Ye.FuYao2012-9-23定义数据结构的变量组,全副优先级选择中断通道,库P166页,抢占优先级0响应优先级0启动此通道的中断结构体初始化中断初始化(外部设备中断)定义数据结构的变量管脚选择将以上入口放在EXTI_Line0这条线上中断模式选择上升或下降沿触发开中断NVIC_InitTypeDefNVIC_InitStructure;/选择优先组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/0NVIC_InitS

6、tructure.NVIC_IRQChannel=EXTI0_IRQn;/NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/NVIC_Init(&NVIC_InitStructure);/*名称:EXTI_Configuration()*功能:外部设备中断初始化*入口参数:*说明:放入主函数里初始化*范例:*编者时间:Ye.FuYao2012-9

7、-23*/voidEXTI_Configuration(void)/EXTI_InitTypeDefEXTI_InitStructure;/GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);/GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource4);EXTI_InitStructure.EXTI_Line=EXTI_Line0;/(stm32有18条这样的线路)EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;/EXTI_I

8、nitStructure.EXTI_Trigger=EXTI_Trigger_Falling;/EXTI_InitStructure.EXTI_LineCmd=ENABLE;/*EXTI_Init(&EXTI_InitStructure);/将结构体初始化名称:Timer_Config();功能:定时器中断初始化入口参数:说明:放入主函数里初始化范例:编者时间:Ye.FuYao2012-9-23*/*/voidTimer_Config(void)/TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_AP

9、B1Periph_TIM2,ENABLE);TIM_DeInit(TIM2);TIM_TimeBaseStructure.TIM_Period=17999;TIM_TimeBaseStructure.TIM_Prescaler=1999;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;定时时间T计算公式:/定义TIM结构体变量使能TIM2外设复位时钟TIM2,恢复到初始状态/35999和1999刚好1s/TIM2时钟分频计数

10、方式/T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK=(35999+1)*(1999+1)/72MHz=1sTIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);/TIM_ClearFlag(TIM2,TIM_FLAG_Update);中断方式下,使能中断源TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_Cmd(TIM2,ENABLE);/初始化清除标志/使能中断源使能TIM2/*名称:NVIC_Config();功能:定时器嵌套控制入口参数:说明:放入主函数里初始化范例:编者时

11、间:Ye.FuYao2012-9-23*/定时器嵌套向量控制器*/voidNVIC_Config(void)/NVIC_InitTypeDefNVIC_InitStructure;设置优先分级组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;选择中断通道。注意:固件库中为/定义结构体变量组,全副优先级选择中断通道,库P166页,XXX_IRQChannel,但该程序预定义为XXX_IRQn所以要特别注意抢占优先级0响应优先级0/NVIC_InitStructu

12、re.NVIC_IRQChannelPreemptionPriority=0;/NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/NVIC_Init(&NVIC_InitStructure);/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/NVIC_Init(&NVIC_InitStructure);/启动此通道的中断结构体初始化intmain(void)SYS_Configuration();/时钟配置(使用

13、外部8MHz晶振)GPIO_Configuration();NVIC_Configuration();EXTI_Configuration();Timer_Config();NVIC_Config();/GPIO管脚初始化配置/外部中断嵌套控制/外部设备中断初始化/定时器中断初始化/定时器嵌套控制/LCDPort_Init();/PC10是CS/PC11是SCLK/PC12是SID/LCD_Init();/LCD12864初始化/_int();while(1)/关LEDGPIO_SetBits(GPIOA,GPIO_Pin_2);GPIO_SetBits(GPIOA,GPIO_Pin_3);GPIO_SetBits(GPIOB,GPIO_Pin_2);以下程序都在stm32f103x_it.c文件里/*名称:voidPPP_IRQHandler(void)*功能:中断服务函数*入口参数:*说明:PPP可以再“startup_stm32f10xhd.S*范例:voidPPP_IRQHandler(void)*编者时间:Ye.FuYao2012-9-23文件里找*=

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

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号