历史上的今天
今天是:2025年08月16日(星期六)
2019年08月16日 | 15-HAL库之定时器学习
2019-08-16 来源:eefocus
1.基本定时器(TIM6/TIM7)

包含时钟源(CK_INT),1个16位自动重载递增计数器(CK_ARR),1个16位可编程预分频器(CK_PSC),计数器寄存器(CK_CNT),触发DAC的控制器组成。时钟源为APB外设时钟,定时事件生成事件主要由CK_PSC和CK_ARR两个寄存器值觉得。例如需要1s延时,时钟源周期为100us,设置CK_ARR为9999,CK_CNT从0开始到9999,总共技术10000次,即1s后更新事件和中断标志。
typedef struct
{
uint32_t Prescaler; //预分频系数,0~65535,时钟源经过该系数才是定时器时钟
uint32_t CounterMode; //计数模式,向上或向下,基本定时器只有向上
uint32_t Period; //时钟周期
uint32_t ClockDivision; //时钟分频,基本定时器无此功能
uint32_t RepetitionCounter; //重复计数,高级控制定时器所用
uint32_t AutoReloadPreload; //自动预装载值
}TIM_Base_InitTypeDef;
应用例子如下:
#include "basic_tim.h"
TIM_HandleTypeDef Basic_Tim6;
void Basic_Tim_Config(void){
HAL_TIM_Base_MspInit(&Basic_Tim6);
__HAL_RCC_TIM6_CLK_ENABLE();
Basic_Tim6.Instance=TIM6;
Basic_Tim6.Init.Prescaler=10799; //TIM6频率=APB2/(Prescaler+1)=10000Hz
Basic_Tim6.Init.Period=9999; //累计10000个周期后产生中断(1s)
Basic_Tim6.Init.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE;
HAL_TIM_Base_Init(&Basic_Tim6);
HAL_NVIC_SetPriority(TIM6_DAC_IRQn,1,1);
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); //优先级配置
}
2.高级定时器(TIM1/TIM8)
包含1个16位自动重载计数器,由可编程预分频器驱动,多达6个独立通道(6路输出控制,4路输入捕获),在基础定时器的基础上引入了外部引脚,可用于多种用途,例如测量输入信号的脉冲宽度(输入捕获),生成输出波形(输出比较,PWM等)。发生更新(计数器上溢/下溢、计数器初始化),突发事件,输入捕获,输出比较时会生成中断/DMA请求。
3.通用定时器
TIM2和TIM5是32位递增/递减/递增递减自动重载计数器,TIM3和TIM4是16位,4个独立通道。
TIM9~TIM15是16位自动重载递增计数器,2个独立通道。
史海拾趣
|
KX1502C电源是东明最新开发的系列产品之一,取消了稳压电源传统使用的工频电源变压器,改用性能优越、价格昂贵的开关电源,KX1502C电源具有以下的显著优点: 1、宽电压、低功耗:本电源采用36W/3V---18V电压大范围可调的开关电源为AC-DC转换,取 ...… 查看全部问答> |
|
想买本VxWorks嵌入式开发的书,希望大家推荐一本。内容是VxWorks下的图形界面系统开发,如VxWorks+QT。感觉还是需要一本纸质的书啊!… 查看全部问答> |
|
如何在wince image中创建层次结构文件夹?并把文件拷贝到每个文件夹中? 如何在wince image中创建层次结构文件夹?并把文件拷贝到每个文件夹中?也就是说,在编译完后,nk.bin中就包含了这些东东。… 查看全部问答> |
|
按照前人的步骤做的,向环境变量中增加一些值之类的都做到了,链接到最后(即到了radiorange那一步)时总会出现 不能打开main.obj错误,就是在parsec的runtime文件夹中不能生成main.obj文件 不明白为什么 若有高人指导,万分感谢… 查看全部问答> |
|
版主,STM32UART多机通信,1主多从,从机最多可支持多少个啊? 版主,请问STM32 UART 多机通信,1主多从,从机最多可支持多少个啊? datasheet上 配置寄存器(USART_CR2)节点地址只有4位,也就是说最多只能有15个从机吗? 可不可以1个主机带100多个从机啊?… 查看全部问答> |
|
这个很简单,但我用中断,用一个旗标指示,当旗标为一时,蜂鸣器发音。 难点在中断,我以前就这个问题曾问过网友。现在我自己总结一下: 主要有两点,一个是在GPIO那里设对如图所示: 我设的是GPIOA第2脚中断。上升沿。 最重要的是把中断打 ...… 查看全部问答> |




