LOADING

加载过慢请开启缓存 浏览器默认开启

openharmony用ubuntu编写PWM

openharmony用ubuntu编写PWM

代码下载

第一部分:代码结构

1、我们需要先初始化GPIO为输出
2、初始化PWM
3、配置PWM

主要函数

头文件

#include "iot_gpio.h" // OpenHarmony HAL API:IoT硬件设备操作接口-GPIO
#include "iot_pwm.h"  // OpenHarmony HAL API:IoT硬件设备操作接口-PWM
#include "hi_io.h"    // 海思SDK API:IoT硬件设备操作接口-IO
#include "hi_pwm.h"   // 海思SDK API:IoT硬件设备操作接口-PWM

配置GPIO输出PWM

hi_io_set_func(引脚,模式);

引脚:
开发板上要用的GPIO引脚号
模式:
我们这边主要设置的pwm的模式

具体哪些模式需要查询:
//鸿蒙路径/device/hisilicon/hispark_pegasus/sdk_liteos/include/hi_io.h
https://github.com/HiW666/openharmony-code/blob/main/code/hi_io.h

设置pwm

IoTPwmInit(pwm线程); 

pwm线程:
根据上方函数模式里面配置的pwm
比如是pwm1那么就填HI_PWM_PORT_PWM1
pwmx那么就填HI_PWM_PORT_PWMx

输出pwm

hi_pwm_start(pwm线程, ccr, 分辨率);

pwm线程:
根据上方函数模式里面配置的pwm
比如是pwm1那么就填HI_PWM_PORT_PWM1
pwmx那么就填HI_PWM_PORT_PWMx
ccr:
设置占空比参数
分辨率:
设置占空比参数
占用比:
ccr/分辨率

关闭pwm

hi_pwm_stop(pwm线程);

pwm线程:
根据上方函数模式里面配置的pwm
比如是pwm1那么就填HI_PWM_PORT_PWM1
pwmx那么就填HI_PWM_PORT_PWMx

pwm控制音频

hi_pwm_start(pwm线程, freqDivisor/2, freqDivisor);

占空比为百分之50
freqDivisor为分倍频率
freqDivisor=时钟源频率/音频表频率
hi3861为4m/频率

补充

关于鸿蒙默认pwm没有开启
鸿蒙路径/device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk
找到pwm文件

修改为