这是最新(主)开发分支的文档。如果您正在查找以前版本的文档,使用左侧的下拉菜单选择所需的版本。

PWM AT 命令集

介绍

PWM,即脉冲宽度调制(Pulse Width Modulation),是一种模拟信号控制技术,广泛应用于电子学和自动化控制领域。PWM通过改变脉冲的宽度来控制信号的占空比,从而控制模拟电路的输出。

AT+DRVPWMINIT: 以指定频率与 GPIO 初始化 PWM 模块

设置命令

命令:

AT+DRVPWMINIT=<freq>,<ch0_gpio>,[,...,<ch4_gpio>]

响应:

OK

参数

  • <freq>: PWM 输出的频率,单位 HZ

  • <ch0_gpio>: 输出 PWM 的 GPIO 引脚

说明

  • 设定的频率需要满足公式: master_clock / (period + 1) / clockdiv,故部分无法被整除的频率无法输出

  • ch0_gpio 可选取值: 16, 35, 28, 2, 10

  • ch1_gpio 可选取值: 17, 36, 3, 11, 29

  • ch2_gpio 可选取值: 0, 18, 12, 30, 40

  • ch3_gpio 可选取值: 1, 19, 13, 31, 41

  • ch4_gpio 可选取值: 4, 7, 14, 32, 42

  • 频率取值范围 [3, 160K] HZ

示例

// pwm channel0 输出 10KHz
AT+DRVPWMINIT=10000,16

AT+DRVPWMDUTY: 设置指定 PWM channel 的占空比

设置命令

命令:

AT+DRVPWMDUTY=<ch0 duty>[,...,<ch4 duty>]

响应:

OK

参数

  • <ch0 duty>: channel0 输出的 PWM 占空比数

  • <ch1 duty>: channel1 输出的 PWM 占空比数

  • <ch2 duty>: channel2 输出的 PWM 占空比数

  • <ch3 duty>: channel3 输出的 PWM 占空比数

  • <ch4 duty>: channel4 输出的 PWM 占空比数

说明

  • 设置的占空比数 duty 会影响初始化时设置的频率

示例

// pwm channel0 输出 PWM 波形中的高电平 cycle 数为 10
AT+DRVPWMDUTY=10

AT+DRVPWMFADE: 设置指定 PWM channel 的渐变模式

设置命令

命令:

AT+DRVPWMFADE=<ch0_target_duty>,<ch0_fade_time>[,...,<ch4_target_duty>,<ch4_fade_time>]

响应:

OK

参数

  • <ch0_target_duty>: channel0 最终输出的PWM占空比数

  • <ch0_fade_time>: channel0 变化至最终占空比数时所需时间(ms)

  • <ch1_target_duty>: channel1 最终输出的PWM占空比数

  • <ch1_fade_time>: channel1 变化至最终占空比数时所需时间(ms)

  • <ch2_target_duty>: channel2 最终输出的PWM占空比数

  • <ch2_fade_time>: channel2 变化至最终占空比数时所需时间(ms)

  • <ch3_target_duty>: channel2 最终输出的PWM占空比数

  • <ch3_fade_time>: channel2 变化至最终占空比数时所需时间(ms)

  • <ch4_target_duty>: channel3 最终输出的PWM占空比数

  • <ch4_fade_time>: channel3 变化至最终占空比数时所需时间(ms)

说明

  • 当 target duty 大于当前duty值时,duty 值递增变化,反之递减

示例

// 输出pwm波形的占空比从当前duty值在 10 秒内变化至 100
AT+DRVPWMFADE=100,10000