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 <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include <string.h>
#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);

运行效果

在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐