STM32单片机产生PWM信号
1、开发环境
目标单片机 : STM32F407VET6芯片,系统时钟高达168Mhz
开发平台:KEIL 5
编写程序借助ST公司的标准函数库,不过现在已经不更新这个写函数库了,大部分开发都STM32CubeMX软件直接生成代码使用。但旧的东西(标准函数库)仍然能够使用。
2、目标
PWM称为脉冲宽度调制,可通过修改占空比来控制LED灯的亮度(呼吸灯)
占空比:指在一个脉冲循环的周期内,通电时间相对于总时间所占的比例
配置单片机寄存器来产生PWM
使PA1引脚产生方波,
3、代码
pwm.c文件代码
//TIM5 PWM部分初始化
//PWM输出初始化
//@arr:自动重装值
//@psc:时钟预分频数 单片机168MHz经过系统时钟2分频,PWM外设时钟84MHz/(84-1+1)=1MHz 1us
//功能:由PA1产生占空比50%的方波
void TIM5_PWM_Init(u32 arr,u32 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE