#夏日挑战赛#【FFH】BearPi_Micro南向开发PWM驱动代码 原创 精华
X丶昕雪
发布于 2022-6-14 23:15
浏览
3收藏
PWM介绍
PWM的频率是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也是指一秒钟能有多少个周期。占空比是一个脉冲周期内,高电平的时间与整个周期时间的比例。
在一定的频率下,PWM通过不同的占空比得到不同大小的输出模拟电压,通过这种原理实现数字模拟信号转换。
如下图第一个计数周期,当CNT<CCRx时输出低电平;当CNT>=CCRx时输出高电平。周期即是(t2-0)s,占空比是t1/t2.
打开PWM
首先注册一个DevHandle对象,用于存放PWM口驱动相关的配置和操作
static DevHandle MyHandler =NULL;
在驱动代码中添加引用PWM头文件
#include "pwm_if.h"
其中PwmOpen函数内的操作如下:
PWM结构体分析
其中PwmDev是核心层控制器结构体
对于PwmConfig类型,该类型是结构体用于配置初始化PWM的参数
polarity(PWM输出的极性,有效电平):
Bit | Polarity | meaning |
---|---|---|
0 | PWM_NORMAL_POLARITY | Normal polarity |
1 | PWM_INVERTED_POLARITY | Inverted polarity |
status(运行的状态):
Bit | Status | meaning |
---|---|---|
0 | PWM_DISABLE_STATUS | Disabled |
1 | PWM_ENABLE_STATUS | Enabled |
对于PwmMethod结构体,该结构体包含有
以上三个参数都是返回int类型的函数指针
PWM配置
方法一
当我们需要配置pwm时,只需要配置好一个PwmConfig类型的一个结构体,再使用PwmSetConfig函数进行配置
方法二
小熊派上有许多PWM配置的具体函数,每一个函数配置一个PWM的配置参数,便于操作,下面列举其中几个:
关闭PWM
PWM设置周期(自动重装载值)
PWM设置占空比
PWM输出的极性,有效电平
一个PWM信号的极性,决定了是高占空比的信号输出电平高,还是低占空比信号输出电平高。假设一个信号的占空比为100%,如果为正常极性,则输出电平最大,如果为翻转的极性,则输出电平为0。
PWM使能
PWM失能
驱动代码中启动PWM的配置流程图:
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2022-6-14 23:16:15修改
赞
9
收藏 3
回复
9
3
3
相关推荐
写得很好,赞一个
大佬,求带!
PWM 不要太重要