使用STM32Cube+keil实现
STM32CubeMX配置
- 根据需要的引脚,选择所需要的定时器(本文使用芯片为STM32H750VBT6)可知用到的是TIM4,将4个通道都配置为PWM输出

- 确定TIM4定时器在哪条时钟总线上,查《STM32H7xx参考手册》可知TIM4在APB1总线

- APB1的时钟总线设置如下图,可以得出定时器频率为240MHz

- 回到TIM4的参数设置界面,通过Prescaler和Counter Period设置溢出频率,auto-reload preload设置为Enable,表示每次溢出后重新进行计数。这里时钟频率是240M,溢出频率计算方法:240M/(Prescaler+1)(Counter Period+1)=2KHz,溢出周期为1/2K=500us,也就是说,每过500us重新开始计数

- 设置每个通道的pulse值来调节占空比,这里设置为125,占空比计算公式:pulse/counter period=125/250=50%,将Output compare preload设置为Enable

Keil代码
在tim.c中可以找到关于tim4的初始化函数,这里为了其他功能对传入的参数做了一些小调整
void MX_TIM4_Init(uint16_t arr)
{
/* USER CODE BEGIN TIM4_Init 0 */
/* USER CODE END TIM4_Init 0 */
TIM_MasterConfigTypeDef sMasterConfig = {
0};
TIM_OC_InitTypeDef sConfigOC = {
0};
/* USER CODE BEGIN TIM4_Init 1 */
/* USER CODE END TIM4_Init 1 */
htim4.Instance = TIM4;
htim4

文章详细介绍了如何在STM32H750VBT6芯片上使用STM32CubeMX和KeilIDE配置TIM4定时器为PWM输出,包括时钟设置、溢出频率计算、占空比调整以及PWM输出控制函数的实现。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



