关注分享主机优惠活动
国内外VPS云服务器

HI3861学习笔记(13)——使用PWM接口(pwm_fan接口)

总结:脉冲宽度调制概述(脉冲宽度调试的英文缩写)。 这是一种非常有效的技术,它使用微处理器的数字输出来控制模拟电路。 它广泛应用于从测量通信到功率控制和转换的领域。 功能设置端子功能 有以下接口,其中指示功能定义参数指示的引脚编号的复用功能返回错误代码。

1.简介 1.1 PWM

脉宽调制(PWM)是英文“Pulse width Modulation”的缩写,也称为脉冲宽度调试。 这是一种非常有效的技术,它使用微处理器的数字输出来控制模拟电路。 它广泛应用于从测量和通信到功率控制和转换的许多领域。 例如上图中,图b)是微处理器输出的数字信号。 事实上,当连接到电机等功率设备时,可以获得与图a)所示相同的效果。 这就是 PWM 调制。 例如,输出占空比为50%,脉冲频率为10Hz,高电平为3.3V。 输出的模拟效果相当于输出1.65V的高电平。 脉冲调制有两个重要参数。 第一个是输出频率。 频率越高,模拟效果越好。 第二个是占空比。 占空比是改变输出模拟效果的电压。 占空比越大,模拟电压就越大。

1.2 GPIO复用特性

HI3861V100芯片有15个GPIO,引脚排列如下。 有 6 个 PWM 端口,每个 GPIO 可以复用为 PWM 端口,如下所示:

引脚 引脚 复用信号名称 2GPIO_00PWM3_OUT3GPIO_01PWM4_OUT4GPIO_02PWM2_OUT5GPIO_03PWM5_OUT6GPIO_04PWM1_OUT17GPIO_05PWM2_OUT18GPIO_06PWM3_OUT19GPIO_07PWM0_OUT20GPIO_08PWM1_OUT27GPIO_09PWM0_OUT28GPIO_10PWM1_OUT29GPIO_11PWM2_OUT30GPIO_12PWM3_OUT31GPIO_13PWM4_OUT32GPIO_14PWM5_OUT 2. API 说明

以下 GPIO 接口 它位于 s/wifiio t_lite/wifiiot_gpio.h。

2.1 GpioInit 函数初始化 GPIO 外设定义 unsigned int GpioInit(void) 参数不返回错误码 2.2 GpioSetDir 函数设置 GPIO 输出方向 函数定义 unsigned int GpioSetDir(WifiIotGpioIdx id, WifiIotGpioDir dir) 参数 id:代表 GPIO Pin 编号dir:代表GPIO输出方向的返回错误码

以下扩展GPIO接口位于base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_gpio_ex.h。

2.3 IoSetFunc 函数设置 GPIO 引脚功能 函数定义 unsigned int IoSetFunc(WifiIotIoName id, unsigned char val) 参数 id:代表 GPIO 引脚编号 val:代表 IO 复用函数返回错误码

以下 PWM接口位于 Base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_pwm.h。

在业务BUILD.gn中包含路径

include_dirs = [ "//utils/native/lite/include", "//kernel/liteos_m/components/cmsis/2.0", "//base/iot_hardware/interfaces/kits/wifiiot_lite", ] 2.5 PwmInit 函数初始化 PWM 函数函数定义 unsigned int PwmInit (WifiIotPwmPort 端口) 参数 port:初始化 PWM 端口号返回错误代码 2.6 PwmStart 函数根据输入参数输出 PWM 信号 函数 定义 unsigned int PwmStart(WifiIotPwmPort port, unsigned Short due, unsigned Short freq) 参数 port:PWM 端口号 Duty:占空比 freq:分频器倍数返回错误代码 2.7 PwmStop。函数关闭 PWM 输出信号 函数定义 unsigned int PwmStop (WifiIotPwmPort 端口) 参数 port:初始化 PWM 端口号并返回错误代码 3. 使用 GPIO 的 PWM 功能实现呼吸灯的效果

如果要包含这个。业务中的路径 BUILD.gn 编译

include_dirs = [ "//utils/native/lite/include", "//kernel/liteos_m /components/cmsis/2.0", "//base/iot_hardware/interfaces/ kits/wifiiot_lite", ]

使用板载 LED 验证 GPIO 的 PWM 功能。 BearPi-HM_Nano 开发板 LED 连接原理图如下图所示。由于 LED 控制引脚连接到板载 LED 的 GPIO_2主控芯片,我们需要编写软件来控制GPIO_2输出PWM波 p> #include #include #include "ohos_init.h"#include "cmsis_os2.h"#include "wifiiot_pwm.h"#include "wifiiot_gpio.h"#include "wifiiot_gpio_ex.h"#define PWM_TASK_STACK_SIZE 512#define PWM_TASK_PRIO 25static void PWMTask(void){ unsigned int i; //初始化 GPIO GpioInit (); //设置GPIO_2引脚的替代功能为PWM IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_PWM2_OUT); //设置GPIO_2引脚为输出模式 GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_ OUT); //初始化PWM2端口 P wmInit (WIFI_ IOT_PWM_PORT_PWM2);而 (1 ) { for (i = 0; i

未经允许不得转载:主机频道 » HI3861学习笔记(13)——使用PWM接口(pwm_fan接口)

评论 抢沙发

评论前必须登录!