文章目录
关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成。然后查看数据手册,了解定时器的重映射引脚情况。所以配置时,需要:开GPIO时钟,引脚复用时钟,定时器时钟;定时器部分重映射;GPIO引脚初始化配置,定时器初始化配置,定时器的PWM模式配置;使能定时器CCRx重装载;最后使能时钟。
在main函数里面,TIM_SetCompare2(TIM3,PWM_Val);//通过设置比较值来调占空比。这个后面一定是需要一点延时的,不然呼吸灯不会亮!
留有一个疑问:我看的书上用定时器输出PWM波的时候用到了定时器中断,我并不知道为什么。
1. 代码
main.c
#include "stm32f10x.h" // Device header
#include "pwm.h"
#include "Delay.h"
int main (void)
{
uint16_t PWM_Val = 0;//定义变量PWM_Val为PWM的占空比
uint8_t cnt = 1;//定义一个变量,用于判断。