esp8266 PWM接口

注:pwm驱动接口函数不能跟hw_timer.c的接口同时使用,因为二者共用了同一个硬件定时器

1.pwm_init

功能:初始化pwm,包括GPIO选择,周期和占空比。目前仅支持调用一次
函数定义:
void pwm_init(
    uint32 period,
    uint8 *duty,
    uint32 pwm_channelnum,
    uint32 (*pin_info_list)[3]
)
参数:
    uint32 period :pwm 周期;
    uint *duty :各路pwm的占空比
    uint32 pwm_channel_num: pwm 通道数
    uint32 (*pin_info_list)[3] pwm 各通道的GPIO硬件参数。本参数是一个n*3的数组指针,
    数组中定义了GPIO的寄存器,对应PIN脚的IO复用值和GPIO对应的序号
返回:
    无

2.pwm_start

功能:
    pwm 开始。每次更新pwm设置后,都需要重新调用本接口进行计算。
函数定义:
    void pwm_start(void)
参数:
    无
返回:
    无

3.pwm_set_duty

功能:
    设置pwm某个通道信号的占空比。设置各路pwm信号高电平所占的时间,duty的范围随pwm
周期改变,最大值:period * 1000 / 45 。例如,1kHz PWM, duty范围0~22222
注意:
设置完成后,需要调用pwm_start生效。
函数定义:

4.void pwm_set_duty(uint32 duty, uint8 channel)

参数:
uint32 duty: 设置高电平时间参数,占空比的值为(duty * 45) / (period * 1000)
函数定义:
uint8 pwm_get_duty(uint8 channel)
参数:
uint8 channel :当前要查询的pwm通道,取值范围依据实际使用了几路pwm,在IOT_Demo中取值在#define PWM_CHANNEL
返回:
对应某路pwm信号duty参数

5.pwm_set_period

功能:设置pwm周期,单位us。例如,1kHz pwm,参数为1000us。
注意:设置完成后,需要调用pwm_start生效
函数定义:
void pwm_set_period(uint32 period)
参数:
uint32 period:pwm周期,单位:us
返回:
无

6.pwm_get_period

功能:
查询pwm周期
函数定义:
uint32 pwm_get_period(void)
返回:
pwm周期,单位:us

7.get_pwm_version

功能:
查询pwm版本信息
函数定义:
uint32 get_pwm_version(void)
参数:
无
返回:
pwm版本信息
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容