开发板:STM32MP127
IO口
蜂鸣器:TIM4_CH1 ---> PB6
风扇:TIM1_CH1 ---> PE9
马达:TIM16_CH1 ---> PF6
框图
总结
通过以上框图分析可知,需要分析芯片手册RCC章节、GPIO章节、TIM4章节
1、RCC章节:使能GPIOB组控制器、TIM4组控制器
2、GPIO章节:1)设置引脚为复用功能模式 2)设置对应的复用功能
3、TIM4章节:如何产生一个PWM方波信号
分析TIM4章节
TIMx_CR1作用:tim控制器寄存器初始化
CR1[7] = 1 --------->自动重载预加载使能
CR1[6:5] = 00 --------->计数器边沿对齐方式
CR1[4] = 1 --------->计数器采用递减计数方式
CR1[0] = 1 ---------> 计数器使能
TIMx_CCMR1作用:timx捕获/比较模式寄存器,用来设置相关的模式选择
TIMx_CCMR1[16][6:4] = 0110 --------> 输出捕获为PWM模式
TIMx_CCMR1[3] = 1 --------> 输出捕获比较寄存器预加载使能
TIMx_CCMR1[1:0] = 00 --------> 配置通道1为输出选择
TIMx_CCER寄存器作用:捕获/比较使能相关寄存器
TIMx_CCER[3] = 0 --------->配置捕获/比较寄存器输出
TIMx_CCER[1] = 0/1 --------->配置捕获/比较寄存器起始状态为低电平/高电平
TIMx_CCER[0] = 0 --------->配置捕获/比较寄存器输出使能
pwm.c文件
#include "pwm.h"
//蜂鸣器初始化 PB6----->TIM4_CH1
void hal_tim4_beep_init()
{
//RCC章节初始化
//PB6---->PB4
RCC->MP_AHB4ENSETR |=(0X1&l