9.基本定时器

基本定时器的个数,不同芯片的定时器数量不一定一样,有些芯片没有基本定时器

就比如STM32F103系列,只有4个定时器,3个通用定时器,1个高级定时器

基本定时器作用

  • 延时

  • 定时器更新中断

       触发DAC转换

系统滴答定时器特性:24bit递减计数器          

基本定时器:属于片上外设,简介和特性在中文参考手册上面可以找到

  • 时钟源    ②预分频器     ③16bit自动重装载计数器

基本定时器( TIM6 和 TIM7)的特性包括:  重装载值(ARR)     分频系数/分频数(PSC)

● 16 位自动重载递增计数器
● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数(PSC)
介于 1 和 65536 之间(注意:寄存器填入值从0开始,范围0 - 65535)  2分频:2 - 1
● 用于触发 DAC 的同步电路
● 发生如下更新事件时会生成中断/DMA 请求:计数器上溢

这个需要充分去理解,对于我们的STM32F407VGT6来说,他的AHB总线1默认是用外部晶振25Mhz通过锁相环进行分频、倍频、分频后得到了168Mhz,默认就是最高频率,当然可以在M4系统.c文件和stm32f4xx.h中进行修改分频和倍频(不建议),通过时钟总线图可以知道AHP1为42Mhz,AHP2为84Mhz,都不为1分频,所以他们挂载的定时器频率要在AHPx频率上乘2,这点特别注意

基本定时器配置步骤

  1. 使能定时器时钟

  2. 预装载,模式,使能

  3. ARR重装载值,PSC分频数设置,计数值设置

  4. 发起更新事件,将重装载值写入计数器

  5. 清楚更新标志

  6. 使能定时器

void TIM7_delay_ms(u16 ms)
{
	RCC->APB1ENR |= 1<<5;
	TIM7->CR1 = 1<<7;//ARR预装载使能,进行缓冲
	TIM7->CR1 = 1<<3;//单脉冲模式,下一更新事件时停止计数(将 CEN 位清零)
	//TIM6->DIER = 1<<0;//中断使能
	TIM7->PSC = 42000 - 1;//84分频,因为时钟频率为84Mhz,是挂载总线频率的2倍
	TIM7->ARR = 2 * ms - 1;//重装载设置
	TIM7->CNT = 0;//设置计数值
	TIM7->EGR |= 1;//UG位置1.更新事情产生,PSC,ARR写入对应计数器
	TIM7->SR &= ~1;//清除标志位
	
	TIM7->CR1 |= 1;//使能定时器
	while(!(TIM7->SR & 1));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值