文章目录
前言
上一章我们讲了定时器,本章我们来看一下PWM的功能,并实现一个呼吸灯的小实验;
一、什么是PWM?
PWM控制的是脉冲输出的占空比,占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。比如说,一个RGB灯在它一个工作周期中有一半时间被接通了,那么它的占空比就是50%,同时亮度也只有50%。如果加在该工作元件上的信号电压为3V,则实际的工作电压平均值或电压有效值就是1.5V。
详细介绍可以参考我的这篇博客,原理都是类似的STM32开发(6)----CubeMX配置PWM
二、K210的PWM
K210芯片定时器总共有3个,每个定时器有4路通道。每个定时器可以设置触发间隔,和定时器中断处理函数。定时器还可以设置为PWM输出的功能,但是如果设置PWM输出,则不可以使用定时的功能。
PWM 用于控制脉冲输出的占空比。其本质是一个定时器,所以注意设置 PWM 号与通道时不要与 TIMER定时器冲突。
PWM 模块具有以下功能:
• 配置 PWM 输出频率
• 配置 PWM 每个管脚的输出占空比
对应头文件 pwm.h
为用户提供以下接口
• pwm_init
• pwm_set_frequency
• pwm_set_enable
为了呈现实验效果,本文还使用RGB灯来观察现象
实验过程
新建pwm文件夹,在文件夹里新建main.c
注意包含头文件
#include "fpioa.h"
#include "sleep.h"
#include "gpio.h"
#include "sysctl.h"
#include "plic.h"
#include "timer.h"
#include "pwm.h"
/*****************************HARDWARE-PIN*********************************/
// 硬件IO口,与原理图对应
#define PIN_RGB_R