MicroPython内核开发笔记书内软件用例 :PWM部分实验用例
简 介: 本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的PWM软件用例部分内容。
关键词
: MicroPython,MM32F3277
- 本书稿内容隶属于 MicroPython内核开发笔记:书内嵌入实验任务 中的内容。
§01 书稿内容
当前版本的 PWM 总共有 6 个通道,它们分别对应的管脚为:
- PWM0:PA8
- PWM1:PA0
- PWM2:PA2
- PWM3:PA3
- PWM4:PA6
- PWM5:PA7
一、基础实验
1、输出基本波形
下面代码初始化 PWM 通道1,2, 分别占用PA0,PA2 管脚。
from machine import PWM
pwm0 = PWM(1, freq=10000, duty=200)
pwm1 = PWM(2, freq=10000, duty=500)
print(pwm0)
print(pwm1)
print('Test PWM.')
while True:
pass
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
每个PWM输出频率为 10kHz,占空比分别为 20%,50%。 下图是示波器采集到的PWM1,PWM2的输出波形。
▲ PWM1,PWM2波形
2、动态改变占空比
使用 pwm.duty() 来动态改变 PWM 的占空比。 输入数值从 0 ~ 1000 对应占空比 从 0 到 100%。
下面 示例程序动态改变 pwm 输出占空比。
from machine import PWM
import time
pwm0 = PWM(1, freq=10000, duty = 1)
duty = 1
dutyinc = 50
incdir = 0
while True:
if incdir == 0:
duty += dutyinc
if duty >= 1000:
duty = 1000
incdir = 1
else:
if duty < dutyinc:
duty = 1
incdir = 0
else: duty -= dutyinc
pwm0.duty(duty)
time.sleep_ms(20)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
通过示波器可以观察到 pwm0 输出的占空比在 0 ~ 100% 之间周期进行变化。
3、动态改变频率
如果需要动态改变 pwm 频率,可以重新使用 定义语句对 PWM 进行初始化。比如
pwm0 = PWM(1, freq=10000, duty = 200)
pwm0 = PWM(1, freq=5000, duty = 500)
- 1
- 2
最终 pwm0 的频率定义为 5kHz,占空比为 500。
※ 总 结 ※
本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的PWM软件用例部分内容。
一、存在问题
1、调用 pwm.init()错误
调用 pwm.init() 函数,程序运行没有错误,但对应的管脚波形没有输出了。比如
pwm0 = PWM(1, freq=10000, duty = 200)
pwm0 = PWM(1, freq=5000, duty = 500)
pwm0.init(freq=5000)
while True:
pass
- 1
- 2
- 3
- 4
- 5
- 6
- 7
对应 PWM 没有波形输出。
2、PWM 通道个数只有6个
现在这个版本中的PWM通道个数只有六个。
■ 相关文献链接:
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/125548665
- 点赞
- 收藏
- 关注作者
评论(0)