最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
1.硬件图
2.PWM脉冲输出
(1)案例说明
- 案例测试PWM脉冲输出。
- 为了直观看出脉冲变化,使用示波器进行测量。
- Haas2.0有两个WPM引脚GPIO3,GPIO39(1.0版本程序没有相关功能),两个引脚适用频率范围不同
GPIO3 | GPIO39 |
---|---|
0~99hz | 100~10khz |
- 案例 board.josn配置设备节点,即GPIO3为"pwm_lpg"。GPIO39为"pwm_pwm"
(2)代码
main.py
from driver import PWM
import utime
pwm_pwm = PWM()
pwm_pwm.open("pwm_pwm")
pwm_lpg = PWM()
pwm_lpg.open("pwm_lpg")
def start_pwm_pwm():
param = {'freq':1000, 'duty': 70 }
pwm_pwm.setOption(param)
def start_pwm_lpg():
param2 = {'freq':50, 'duty': 10 }
pwm_lpg.setOption(param2)
if __name__ == "__main__":
start_pwm_pwm()
utime.sleep(5)
start_pwm_lpg()
utime.sleep(5)
ret = pwm_pwm.getOption()
print("pwm_pwm.getOption={}".format(ret))
ret = pwm_lpg.getOption()
print("pwm_lpg.getOption={}".format(ret))
# pwm_pwm.close()
# pwm_lpg.close()
while True:
utime.sleep(3)
board.json
{
"name": "haas506",
"version": "2.0.0",
"io": {
"pwm_pwm": {
"type": "PWM",
"port": 39
},
"pwm_lpg": {
"type": "PWM",
"port": 3
},
"serial1":{
"type":"UART",
"port":0,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
},
"serial2":{
"type":"UART",
"port":1,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
},
"serial3":{
"type":"UART",
"port":2,
"dataWidth":8,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
}
},
"debugLevel": "DEBUG",
"repl":"disable",
"replPort":0
}
(3)效果
示波器分别连接地线与GPIO口
输出日志
示波器现象
- GPIO39
- GPIO3
3.Class-PWM
PWM.open(nodeName) | PWM.close() | setOption | PWM.getOption() |
---|---|---|---|
打开PWM | 关闭PWM功能 | 设置脉宽调制参数 | 读取设置的参数 |
实例化
PWM = PWM()
返回值:PWM对象成功,返回PWM对象;PWM对象创建失败,返回None
PWM.open(nodeName) - 打开PWM
函数功能:根据board.json中设备节点的配置打开PWM设备
参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
nodeName | string | 是 | board.json配置文件中PWM设备节点的名称 |
board.json中的PWM类型设备属性配置项说明如下:
属性字段 | 数据类型 | 属性值 | 必选项? | 字段说明 |
---|---|---|---|---|
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet上的端口对应 |
返回值:打开PWM设备成功返回0;打开PWM设备失败返回失败错误码
PWM.close() - 关闭PWM功能
函数功能:关闭PWM脉宽调制功能
注意事项:需确保要关闭的PWM处于open状态
参数说明:无
返回值:关闭PWM设备成功返回0;关闭PWM设备失败返回失败错误码
PWM.setOption(Dictionary option) - 设置脉宽调制参数
函数功能:设置脉宽调制参数,包括freq和duty的值
注意事项:需确保此PWM处于open状态
参数说明: 设置的参数为字典类型,字典包含 freq 和 duty 两个值。 如: {'freq':2000, 'duty': 0 }
属性字段 | 数据类型 | 属性值 | 必选项? | 字段说明 |
---|---|---|---|---|
freq | Number | 1 | 是 | PWM信号频率配置,单位hz |
duty | Number | 1 | 是 | PWM占空比配置,这里按照百分数计算,设置50即为占空比50% |
返回值:读取成功则返回0并按照设置的值输出PWM波形;负数代表读取数据失败
PWM.getOption() - 读取设置的参数
函数功能:读取PWM设置的参数值
注意事项:需确保此PWM处于open状态
参数说明: 无
返回值:读取成功返回参数字典,和设置的参数字典结构相同。