定时器中断实验
来源:互联网 发布:ae数字矩阵 特效 编辑:程序博客网 时间:2024/05/23 15:02
常用库函数:定时器参数初始化
void TIM_TimeBaseInit(TIM_TypeDef*TIMx,
TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct);
typedefstruct
{
uint16_t TIM_Prescaler; //预分频系数
uint16_t TIM_CounterMode; //计数模式是向上还是向下
uint16_t TIM_Period; //自动装载值
uint16_t TIM_ClockDivision; //捕获里用到
uint8_t TIM_RepetitionCounter;//高级定时器用到
} TIM_TimeBaseInitTypeDefvoid TIM_Cmd(TIM_TypeDef*TIMx,FunctionalStateNewState)
void TIM_ITConfig(TIM_TypeDef*TIMx, uint16_t TIM_IT, FunctionalStateNewState);
FlagStatusTIM_GetFlagStatus(TIM_TypeDef*TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef*TIMx, uint16_t TIM_FLAG);
ITStatusTIM_GetITStatus(TIM_TypeDef*TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef*TIMx, uint16_t TIM_IT);
RCC_APB1PeriphClockCmd();
② 初始化定时器,配置ARR,PSC。
TIM_TimeBaseInit();
void TIM_ITConfig();
NVIC_Init();
④ 使能定时器。
TIM_Cmd();
⑥ 编写中断服务函数。
TIMx_IRQHandler();
Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)。
void TIM3_Int_Init(u16 arr ,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE); TIM_TimeBaseStructure.TIM_Prescaler = arr;TIM_TimeBaseStructure.TIM_Period = psc; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能更新中断 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM3, ENABLE); TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); }void TIM3_IRQHandler(void){if(TIM_GetITStatus(TIM3 , TIM_IT_Update) != RESET ){LED1=!LED1;TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);}}int main(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init(); LED_Init(); TIM3_Int_Init(4999 ,7199); while(1);}
- 中断和定时器实验
- mini2440 定时器中断实验
- 4、定时器中断实验
- 定时器中断实验
- 定时器中断实验
- 定时器中断实验
- stm32定时器中断实验
- 定时器中断实验
- 定时器中断实验
- 【实验六】定时器中断实验
- STM32学习-定时器中断实验
- STM32定时器中断实验-TIM3
- 外部中断与定时器中断实验
- 实验二:外部中断与定时器/计数器中断实验
- STM32单片机学习(5) 定时器中断实验
- 中断和定时器实验--c语言实现中断嵌套
- 外部中断与定时器中断实验(修改)
- cortex_m3_stm32嵌入式学习笔记(八):定时器中断实验(定时器的更新中断)
- CImage类之GetBits、GetPixel、GetPitch、GetBPP应用
- java创建对象的四种方式
- Jstorm 初试
- Desktop Notifications in Python with Libnotify
- [详解机器学习]机器学习之认知篇
- 定时器中断实验
- 湖南省第12届大学生计算机程序设计大赛 最长上升子序列 csu 1807
- Angular 基础知识规整之路由
- Ubuntu github通过ssh免密码push
- 微信公众平台模拟登陆和发送消息详解
- lombok的使用和原理
- (第6.1篇)大数据发展背后的强力推手——HBase分布式存储系统
- 每日积累(一七)---hashset存值
- PHP setcookie() 函数