
基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制PWM外设 原创
1、案例简介
本案例是在小凌派-RK2206开发板上使用IoT库PWM接口,进行PWM编程开发。
例程将创建一个任务,每隔5秒将PWM0~10依次启用,输出1000Hz。
2、基础知识
PWM在日常设备中非常常见,以下我们将演示IoT库的PWM接口如何进行PWM控制。
2.1、头文件
2.2、初始化PWM设备:IoTPwmInit
描述:
初始化PWM设备。
参数:
参数 | 类型 | 描述 |
---|---|---|
port | unsigned int | PWM端口号 |
其中,port对应于如下表所示:
port | GPIO |
---|---|
0 | GPIO_PB4 |
1 | GPIO_PB5 |
2 | GPIO_PB6 |
3 | GPIO_PC0 |
4 | GPIO_PC1 |
5 | GPIO_PC2 |
6 | GPIO_PC3 |
7 | GPIO_PC4 |
8 | GPIO_PC5 |
9 | GPIO_PC6 |
10 | GPIO_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_pwm.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.3、取消初始化PWM设备:IoTPwmDeinit
描述:
取消初始化PWM设备。
参数:
参数 | 类型 | 描述 |
---|---|---|
port | unsigned int | PWM端口号 |
其中,port对应于如下表所示:
port | GPIO |
---|---|
0 | GPIO_PB4 |
1 | GPIO_PB5 |
2 | GPIO_PB6 |
3 | GPIO_PC0 |
4 | GPIO_PC1 |
5 | GPIO_PC2 |
6 | GPIO_PC3 |
7 | GPIO_PC4 |
8 | GPIO_PC5 |
9 | GPIO_PC6 |
10 | GPIO_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_pwm.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.4、开始PWM信号输出:IoTPwmStart
描述:
开始PWM信号输出。
参数:
参数 | 类型 | 描述 |
---|---|---|
port | unsigned int | PWM端口号 |
duty | unsigned short | 高电平的占空比,范围为1~99 |
freq | unsigned int | 频率 |
其中,port对应于如下表所示:
port | GPIO |
---|---|
0 | GPIO_PB4 |
1 | GPIO_PB5 |
2 | GPIO_PB6 |
3 | GPIO_PC0 |
4 | GPIO_PC1 |
5 | GPIO_PC2 |
6 | GPIO_PC3 |
7 | GPIO_PC4 |
8 | GPIO_PC5 |
9 | GPIO_PC6 |
10 | GPIO_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_pwm.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.5、停止PWM信号输出:IoTPwmStop
描述:
停止PWM信号输出。
参数:
参数 | 类型 | 描述 |
---|---|---|
port | unsigned int | PWM端口号 |
其中,port对应于如下表所示:
port | GPIO |
---|---|
0 | GPIO_PB4 |
1 | GPIO_PB5 |
2 | GPIO_PB6 |
3 | GPIO_PC0 |
4 | GPIO_PC1 |
5 | GPIO_PC2 |
6 | GPIO_PC3 |
7 | GPIO_PC4 |
8 | GPIO_PC5 |
9 | GPIO_PC6 |
10 | GPIO_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_pwm.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
3、程序设计
在pwm_example
函数中,创建一个任务。
pwm_thread
任务中调用IOT库的PWM接口控制PWM。
4、编译调试
修改 vendor/lockzhiner/rk2206/sample
路径下 BUILD.gn 文件,指定 iot_pwm_example
参与编译。
修改 device/lockzhiner/rk2206/sdk_liteos
路径下 Makefile 文件,添加 -liot_pwm_example
参与编译。
5、运行结果
示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,任务每隔5s控制不同PWM输出。
