Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e9eac4b0
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e9eac4b0
编写于
5月 11, 2022
作者:
K
king_he
提交者:
Gitee
5月 11, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/device-dev/driver/driver-platform-pwm-des.md.
Signed-off-by:
N
king_he
<
6384784@qq.com
>
上级
e9bfd639
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
30 deletion
+30
-30
zh-cn/device-dev/driver/driver-platform-pwm-des.md
zh-cn/device-dev/driver/driver-platform-pwm-des.md
+30
-30
未找到文件。
zh-cn/device-dev/driver/driver-platform-pwm-des.md
浏览文件 @
e9eac4b0
...
...
@@ -5,7 +5,7 @@
PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种对模拟信号电平进行数字编码并将其转换为脉冲的技术。常用于马达控制、背光亮度调节等。
PWM接口定义了操作PWM设备的通用方法集合,包括:
PWM接口定义了操作PWM设备的通用方法集合,包括:
-
PWM设备句柄获取和释放。
-
PWM周期、占空比、极性的设置。
...
...
@@ -23,7 +23,7 @@ PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种对模
| -------- | -------- |
| duty | 占空时间,以纳秒为单位。 |
| period | PWM周期,以纳秒为单位。 |
| number | 要生成的方波数。
<br/>
-
正值:表示将生成指定数量的方波
,
<br/>
-
0:表示方波将不断产生。 |
| number | 要生成的方波数。
<br/>
-
正值:表示将生成指定数量的方波
<br/>
-
0:表示方波将不断产生。 |
| polarity | 极性:正极性/反极性。 |
| status | 状态:启用状态/禁用状态。 |
...
...
@@ -39,7 +39,7 @@ PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种对模
| PWM配置操作 | -
PwmSetPeriod:设置PWM周期
<br/>
-
PwmSetDuty:设置PWM占空时间
<br/>
-
PwmSetPolarity:设置PWM极性 |
| 设置/获取PWM配置信息 | -
PwmSetConfig:设置PWM设备参数
<br/>
-
PwmGetConfig:获取PWM设备参数 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
<br>
> 本文涉及的所有接口,仅限内核态使用,不支持在用户态使用。
...
...
@@ -70,7 +70,7 @@ DevHandle PwmOpen(uint32_t num);
| -------- | -------- |
| num | PWM设备编号 |
|
**返回值**
|
**返回值描述**
|
| handle | 获取成功返回PWM设备句柄 |
| handle | 获取成功
,
返回PWM设备句柄 |
| NULL | 获取失败 |
假设系统中的PWM设备号为0,获取该PWM设备句柄的示例如下:
...
...
@@ -162,10 +162,10 @@ int32_t PwmDisable(DevHandle handle);
```
int32_t ret;
/*
禁用PWM设备
*/
/*
禁用PWM设备
*/
ret = PwmDisable(handle);
if (ret != 0) {
/*
错误处理
*/
/*
错误处理
*/
}
```
...
...
@@ -193,7 +193,7 @@ int32_t PwmSetPeriod(DevHandle handle, uint32_t period);
```
int32_t ret;
/*
设置周期为50000000纳秒
*/
/*
设置周期为50000000纳秒
*/
ret = PwmSetPeriod(handle, 50000000);
if (ret != 0) {
/*错误处理*/
...
...
@@ -224,10 +224,10 @@ int32_t PwmSetDuty(DevHandle handle, uint32_t duty);
```
int32_t ret;
/*
设置占空时间为25000000纳秒
*/
/*
设置占空时间为25000000纳秒
*/
ret = PwmSetDuty(handle, 25000000);
if (ret != 0) {
/*
错误处理
*/
/*
错误处理
*/
}
```
...
...
@@ -255,10 +255,10 @@ int32_t PwmSetPolarity(DevHandle handle, uint8_t polarity);
```
int32_t ret;
/*
设置极性为反
*/
/*
设置极性为反
*/
ret = PwmSetPolarity(handle, PWM_INVERTED_POLARITY);
if (ret != 0) {
/*
错误处理
*/
/*
错误处理
*/
}
```
...
...
@@ -286,16 +286,16 @@ int32_t PwmSetConfig(DevHandle handle, struct PwmConfig *config);
```
int32_t ret;
struct PwmConfig pcfg;
pcfg.duty = 25000000; /*
占空时间为25000000纳秒
*/
pcfg.period = 50000000; /*
周期为50000000纳秒
*/
pcfg.number = 0; /*
不断产生方波
*/
pcfg.polarity = PWM_INVERTED_POLARITY; /*
极性为反
*/
pcfg.status = PWM_ENABLE_STATUS; /*
运行状态为启用
*/
pcfg.duty = 25000000; /*
占空时间为25000000纳秒
*/
pcfg.period = 50000000; /*
周期为50000000纳秒
*/
pcfg.number = 0; /*
不断产生方波
*/
pcfg.polarity = PWM_INVERTED_POLARITY; /*
极性为反
*/
pcfg.status = PWM_ENABLE_STATUS; /*
运行状态为启用
*/
/*
设置PWM设备参数
*/
/*
设置PWM设备参数
*/
ret = PwmSetConfig(handle, &pcfg);
if (ret != 0) {
/*
错误处理
*/
/*
错误处理
*/
}
```
...
...
@@ -345,11 +345,11 @@ void PwmTestSample(void)
DevHandle handle = NULL;
struct PwmConfig pcfg;
pcfg.duty = 20000000; /*
占空时间为20000000纳秒
*/
pcfg.period = 40000000; /*
周期为40000000纳秒
*/
pcfg.number = 100; /*
生成100个方波
*/
pcfg.polarity = PWM_NORMAL_POLARITY; /*
极性为正
*/
pcfg.status = PWM_ENABLE_STATUS; /*
运行状态为启用
*/
pcfg.duty = 20000000; /*
占空时间为20000000纳秒
*/
pcfg.period = 40000000; /*
周期为40000000纳秒
*/
pcfg.number = 100; /*
生成100个方波
*/
pcfg.polarity = PWM_NORMAL_POLARITY; /*
极性为正
*/
pcfg.status = PWM_ENABLE_STATUS; /*
运行状态为启用
*/
/* PWM设备编号,要填写实际平台上的编号 */
num = 1;
...
...
@@ -361,49 +361,49 @@ void PwmTestSample(void)
return;
}
/*
设置周期为50000000纳秒
*/
/*
设置周期为50000000纳秒
*/
ret = PwmSetPeriod(handle, 50000000);
if (ret != 0) {
HDF_LOGE("PwmSetPeriod: failed, ret %d\n", ret);
goto _ERR;
}
/*
设置占空时间为25000000纳秒
*/
/*
设置占空时间为25000000纳秒
*/
ret = PwmSetDuty(handle, 25000000);
if (ret != 0) {
HDF_LOGE("PwmSetDuty: failed, ret %d\n", ret);
goto _ERR;
}
/*
设置极性为反
*/
/*
设置极性为反
*/
ret = PwmSetPolarity(handle, PWM_INVERTED_POLARITY);
if (ret != 0) {
HDF_LOGE("PwmSetPolarity: failed, ret %d\n", ret);
goto _ERR;
}
/*
获取PWM设备参数
*/
/*
获取PWM设备参数
*/
ret = PwmGetConfig(handle, &pcfg);
if (ret != 0) {
HDF_LOGE("PwmGetConfig: failed, ret %d\n", ret);
goto _ERR;
}
/*
启用PWM设备
*/
/*
启用PWM设备
*/
ret = PwmEnable(handle);
if (ret != 0) {
HDF_LOGE("PwmEnable: failed, ret %d\n", ret);
goto _ERR;
}
/*
设置PWM设备参数
*/
/*
设置PWM设备参数
*/
ret = PwmSetConfig(handle, &pcfg);
if (ret != 0) {
HDF_LOGE("PwmSetConfig: failed, ret %d\n", ret);
goto _ERR;
}
/*
禁用PWM设备
*/
/*
禁用PWM设备
*/
ret = PwmDisable(handle);
if (ret != 0) {
HDF_LOGE("PwmDisable: failed, ret %d\n", ret);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录