完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
概述
这次是STM32中定时器部分的介绍,他与51系统的不同是定时器数量的增加以及寄存器的调用,说白了,库函数还是基于寄存器的。 STM32F103系列的单片机一共有11个定时器: 2个高级定时器、4个通用定时器、2个基本定时器、2个看门狗定时器、1个系统滴答定时器、除去看门狗定时器和滴答定时器,其他8个定时器列表: 其中, TIM1和TIM8是高级定时器 TIM2 - TIM5是通用定时器 TIM6和TIM7是基本定时器 这8个定时器都是16位的,它们计数的类型除了基本定时器TIM6和TIM7,都支持向上、向下、向上/向下3种计数模式。 基本定时器(TIM6和TIM7)主要功能: 只有最基本的定时功能。基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。 通用定时器(TIM2 - TIM5)主要功能: 除了基本的定时器的功能外,还可以测量输入信号的脉冲长度( 输入捕获) 或者产生输出波形( 输出比较和PWM)。 高级定时器(TIM1和TIM8)主要功能: 高级定时器不但具有基本、通用定时器的所有的功能,还具有控制交直流电动机的所有功能。比如它可以输出6路互补带死区的信号,刹车功能等等。 以上摘自STM32官方数据手册!!! 了解了一部分定时器的使用了的话我打算用定时器来实现一个精准的LED闪烁实验: 1.首先新建工程不必说 2.新建两个新建两个文件,tim.c 和 tim.h 3.在tim.c中添加以下代码 #include “tim.h” void TIMx_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //声明TIMx定时器结构体 NVIC_InitTypeDef NVIC_InitStructure; //声明中断优先级结构体 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置中断优先级分组 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //使能APB1总线上的TIMx时钟 TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件活动的自动装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler = psc; //设置用来作为TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数 TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许TIMx中断更新 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //配置外部中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //设置抢先优先级为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //设置子优先级为3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 NVIC_Init(&NVIC_InitStructure); //初始化中断优先级 TIM_Cmd(TIM3,ENABLE); //使能TIMx } void TIM3_IRQHandler(void) //TIMx中断服务函数 { if(TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET) //检查TIMx更新中断 { TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIMx中断标志位 GPIOC->ODR ^= 0X0001<<13; //PC.13高低电平交替翻转 } } 定时器中断配置步骤:
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1568 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1513 浏览 1 评论
939 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
669 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1561 浏览 2 评论
1851浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
620浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
506浏览 3评论
511浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
492浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 09:55 , Processed in 0.611752 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号