> 文档中心 > Bearpi开发板HarmonyOS之PWM输出

Bearpi开发板HarmonyOS之PWM输出


wifiiot_pwm.h接口简介

  1. 初始化PWM
    unsigned int PwmInit(WifiIotPwmPort port);
  2. 取消初始化PWM
    unsigned int PwmDeinit(WifiIotPwmPort port);
  3. 根据输入参数输出PWM
    unsigned int PwmStart(WifiIotPwmPort port, unsigned short duty, unsigned short freq);
  4. 停止PWM输出
    unsigned int PwmStop(WifiIotPwmPort port);

PWM驱动LED灯代码

#include #include #include "ohos_init.h"#include #include "cmsis_os2.h"#include "wifiiot_gpio.h"#include "wifiiot_gpio_ex.h"#include "wifiiot_pwm.h"static void pwm2_func(void){  // LED灯引脚配置成PWM输出    GpioInit();    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_IO_FUNC_GPIO_2_PWM2_OUT);    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_GPIO_DIR_OUT);    int i;  //初时化PWM2      PwmInit(WIFI_IOT_PWM_PORT_PWM2);      while(1)      {  for (i = 0; i < 40000; i += 200) {     //输出不同占空比的PWM波     PwmStart(WIFI_IOT_PWM_PORT_PWM2, i, 40000);     usleep(10); }      }}static void my_led_example(void){ osThreadAttr_t attr;     attr.attr_bits = 0;     attr.name = "pwm2";     attr.cb_mem = NULL;     attr.cb_size = 0;     attr.priority = 24;     attr.stack_size = 512;     if(osThreadNew((osThreadFunc_t)pwm2_func,NULL,&attr) == NULL)     { printf("Falied to create PWMTask!\n");    }}SYS_RUN(my_led_example);

运行效果

在这里插入图片描述