MicroPython内核开发笔记书内软件用例 :PWM部分实验用例
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
每个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)
通过示波器可以观察到 pwm0 输出的占空比在 0 ~ 100% 之间周期进行变化。
3、动态改变频率
如果需要动态改变 pwm 频率,可以重新使用 定义语句对 PWM 进行初始化。比如
pwm0 = PWM(1, freq=10000, duty = 200)
pwm0 = PWM(1, freq=5000, duty = 500)
最终 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
对应 PWM 没有波形输出。
2、PWM 通道个数只有6个
现在这个版本中的PWM通道个数只有六个。
■ 相关文献链接:
● 相关图表链接:
CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~以上是关于MicroPython内核开发笔记书内软件用例 :PWM部分实验用例的主要内容,如果未能解决你的问题,请参考以下文章
MicroPython内核开发笔记书内软件用例 :MEM相关实验用例
MicroPython内核开发笔记书内软件用例 :浮点数相关实验
MicroPython内核开发笔记书内软件用例 :DAC相关实验
MicroPython内核开发笔记书内软件用例 :Timer相关实验