目录
(以下内容均为个人所学总结,希望对你有所帮助,感谢你的阅读!!!)
硬件准备:
引脚图:
导包:
from machine import Timer,PWM
PWM库
#设置频率。不传参数返回当前频率值。
PWM.freq(freq)
#设置占空比。不传参数返回当前占空比值。[0-100]表示占空比百分比
PWM.duty(duty)
#使能 PWM 输出。
PWM.enable()
#暂停 PWM 输出。
PWM.disable()
#注销 PWM。
PWM.deinit()
配置定时器:
'''
【id】定时器编号, [Timer.TIMER0~TIMER2] 定时器 0-2
【channel】Timer 通道,[Timer.CHANNEL0~Timer.CHANNEL3]
【mode】定时器模式
MODE_ONE_SHOT: 一次性
MODE_PERIODIC: 周期性
MODE_PWM
【period】定时器为周期性模块时每个周期时间值
【unit】周期的单位
Timer.UNIT_S:秒
Timer.UNIT_MS:毫秒
Timer.UNIT_US:微妙
Timer.UNIT_NS:纳秒
【callback】定时器中断执行的回调函数;注意:回调函数是在中断中调用
的,所以在回调函数中请不要占用太长时间以及做动态内存分配开关中断等
动作。
【arg】回调函数第 2 个参数
【start】是否在构建对象后立即开始定时器,
=True: 立即开始;
=False: 不立即开始,需要调用 start()来开启。
【priority】硬件中断优先级,在 K210 中,取值范围是[1,7],值越小优先级越高
【div】硬件分频器。
'''
machine.Timer(id,channel,mode=Timer.MODE_ONE_SHOT,period=1000,unit=Timer.UNIT_MS,callback=None,
arg=None, start=True,priority=1, div=0)
ding_shi_qi0=Timer(Timer.TIMER0,Timer.CHANNEL0,mode=Timer.MODE_PWM)
配置PWM:
'''
【tim】K210 的 PWM 依赖于定时器来产生波形
【freq】PWM 频率
【duty】PWM 占空比
【pin】PWM 输出引脚
【enable】是否在构建对象后立即产生波形,默认 True
'''
machine.PWM(tim, freq, duty, pin, enable=True)
LED_LanDeng=PWM(ding_shi_qi0,freq=1,duty=99,pin=12)
例程:
'''
main.py
呼吸灯
'''
from machine import Timer,PWM
import time
ding_shi_qi0=Timer(Timer.TIMER0,Timer.CHANNEL0,mode=Timer.MODE_PWM)
LED_LanDeng=PWM(ding_shi_qi0,freq=500000,duty=99,pin=12)
while True:
for i in range (0,100,1):
LED_LanDeng.duty(i)
time.sleep(0.05)
for i in range (100,0,-1):
LED_LanDeng.duty(i)
time.sleep(0.05)