使用CubeMX配置基本定时器TIM6(带计算方法 基于Cortex M4内核)

配置基本定时器TIM6的相关系数

配置时只需要关注分频值和预装载值即可。

分频值由TIM6的最大时钟值确定。由于TIM6是挂在APB1上的, 其时钟最大为1/2AHB时钟(即1/2 * 90MHz=45MHz),经过TIM6自带的倍频器后值为45MHz*2=90MHz

预装载值由计数器寄存器确定,通俗讲,就是每次溢出值计一个数, 计多少个数后,将标志位置一。

例如, 如果需要定时1秒, 那么, 只需将时钟源周期定为100us(即100us溢出一次,并计数一次), 然后计数器记10000次后,即可得到1S时间的标志位。(100us*10000=1000ms = 1s)

分频值计算方法:

由于 计数器频率 = TIM6最大频率/预分频器值

例如 需要其输出100us周期的时钟, 那么计数器频率 等于该周期的倒数 = 10000Hz,

TIM6最大频率为90Mhz(90,000,000Hz) , 那么就推出预分频值 = 90Mhz/10,000Hz = 9,000

(技巧:将时钟源设定为100us, 那么分频值就是恒定的9000, 需要计时1ms,就是10个100us, 将预装载值设定为10即可。10微秒,就是100)

将计算出的分频值和预装载值输入CubeMX即可, 然后生成代码。

生成的HAL库代码属于傻瓜编程。只需要在USER CODE BEGIN和END直接填入自己的代码即可, 完全不需要关注底层。

首先在主函数中找到 初始化的部分, 并在用户代码区填入 启动TIM6的HAL库函数。

调用HAL_TIM_Base_Start_IT(&htim6);

之后,在后面的函数区的用户代码区,填入触发标志位后的动作即可。

调用

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

自此, 每隔1秒, Flag 都会置一一次。

CUBE开发环境的HAL库果然够粗暴,,,,不用去管中断服务函数, 也不用去管固件库里的各种寄存器结构体配置,直接封装成两句代码,让STM32比51还简单。。。

CubeMX是STMicroelectronics官方提供的一款集成开发环境工具,用于快速配置STM32微控制器的硬件外设和生成初始化代码。TIM4是STM32微控制器上的一个定时器/计数器模块,可以用于生成PWM信号。 PWM是脉冲宽度调制的缩写,是一种通过调节波形脉冲的高电平时间来控制输出电压的技术。PWM信号由一个基准频率和一个可以调节的占空比组成。在TIM4模块中,我们可以通过配置相关的寄存器来生成PWM信号。 在CubeMX配置TIM4生成PWM信号的步骤如下: 1. 打开CubeMX,创建一个新的工程。 2. 在"Pinout & Configuration"选项卡中,选择要使用的STM32微控制器,并配置相应的系统时钟。 3. 在"Peripherals"选项卡中,找到TIM4模块,并使能它。 4. 在TIM4配置页面中,选择PWM Generation模式,并配置相应的基准频率和占空比。 5. 配置TIM4的时钟源和预分频器。 6. 在GPIO页面中,选择要用作PWM输出的引脚,并配置它们为"Alternate function"模式。 7. 生成代码,并将生成的代码导入到你的工程中。 完成以上步骤后,TIM4将根据你的配置生成相应的PWM信号,并输出到配置的引脚上。你可以通过改变占空比来调节输出的电压。在生成的代码中,你可以找到相关的初始化函数和设置占空比的函数,可以根据需求进行调用和修改。 总的来说,使用CubeMXTIM4模块可以方便地配置和生成PWM信号,从而实现对输出电压的精确控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值