diff --git a/zh-cn/device-dev/driver/driver-platform-gpio-des.md b/zh-cn/device-dev/driver/driver-platform-gpio-des.md
index 28cc26f4f695d821cc92e153a7c18c65e95fda4b..aa833d1b9c54c57a7f60f3bc281de0c954123a29 100644
--- a/zh-cn/device-dev/driver/driver-platform-gpio-des.md
+++ b/zh-cn/device-dev/driver/driver-platform-gpio-des.md
@@ -65,7 +65,7 @@ GPIO接口定义了操作GPIO管脚的标准方法集合,包括:
设置管脚对应的中断服务函数
|
-GpioUnSetIrq
+ |
GpioUnsetIrq
|
取消管脚对应的中断服务函数
|
@@ -245,7 +245,7 @@ GPIO标准API通过GPIO管脚号来操作指定管脚,使用GPIO的一般流
示例代码:
- ```
+ ```c
int32_t ret;
uint16_t val;
/* 将3号GPIO管脚配置为输出 */
@@ -326,76 +326,38 @@ GPIO标准API通过GPIO管脚号来操作指定管脚,使用GPIO的一般流
> **注意:**
>同一时间,只能为某个GPIO管脚设置一个中断服务函数,如果重复调用GpioSetIrq函数,则之前设置的中断服务函数会被取代。
- 当不再需要响应中断服务函数时,使用如下函数取消中断设置:
+- 当不再需要响应中断服务函数时,使用如下函数取消中断设置:
- int32\_t GpioUnSetIrq\(uint16\_t gpio\);
+ int32\_t GpioUnsetIrq\(uint16\_t gpio, void *arg\);
- **表 6** GpioUnSetIrq参数和返回值描述
+ **表 6** GpioUnsetIrq参数和返回值描述
- 参数
- |
- 参数描述
- |
-
- gpio
- |
- GPIO管脚号
- |
-
- 返回值
- |
- 返回值描述
- |
-
- 0
- |
- 取消成功
- |
-
- 负数
- |
- 取消失败
- |
-
-
-
+
+ | **参数** | **参数描述** |
+ | ---------- | -------------- |
+ | gpio | GPIO管脚号 |
+ | arg | GPIO中断数据 |
+ | **返回值** | **返回值描述** |
+ | 0 | 取消成功 |
+ | 负数 | 取消失败 |
- 在中断服务程序设置完成后,还需要先通过如下函数使能GPIO管脚的中断:
+- 在中断服务程序设置完成后,还需要先通过如下函数使能GPIO管脚的中断:
int32\_t GpioEnableIrq\(uint16\_t gpio\);
-
+
**表 7** GpioEnableIrq参数和返回值描述
-
+
- 参数
- |
- 参数描述
- |
-
- gpio
- |
- GPIO管脚号
- |
-
- 返回值
- |
- 返回值描述
- |
-
- 0
- |
- 使能成功
- |
-
- 负数
- |
- 使能失败
- |
-
-
-
-
+ | **参数** | **参数描述** |
+ | ---------- | -------------- |
+ | gpio | GPIO管脚号 |
+ | **返回值** | **返回值描述** |
+ | 0 | 使能成功 |
+ | 负数 | 使能失败 |
+
+
+
> **注意:**
>必须通过此函数使能管脚中断,之前设置的中断服务函数才能被正确响应。
@@ -406,37 +368,16 @@ GPIO标准API通过GPIO管脚号来操作指定管脚,使用GPIO的一般流
**表 8** GpioDisableIrq参数和返回值描述
- 参数
- |
- 参数描述
- |
-
- gpio
- |
- GPIO管脚号
- |
-
- 返回值
- |
- 返回值描述
- |
-
- 0
- |
- 禁止成功
- |
-
- 负数
- |
- 禁止失败
- |
-
-
-
-
+ | **参数** | **参数描述** |
+ | ---------- | -------------- |
+ | gpio | GPIO管脚号 |
+ | **返回值** | **返回值描述** |
+ | 0 | 禁止成功 |
+ | 负数 | 禁止失败 |
+
示例代码:
-
- ```
+
+```c
/* 中断服务函数
*/
int32_t MyCallBackFunc(uint16_t gpio, void *data)
@@ -459,21 +400,21 @@ GPIO标准API通过GPIO管脚号来操作指定管脚,使用GPIO的一般流
HDF_LOGE("GpioEnableIrq: failed, ret %d\n", ret);
return;
}
-
+
/* 禁止3号GPIO管脚中断 */
ret = GpioDisableIrq(3);
if (ret != 0) {
HDF_LOGE("GpioDisableIrq: failed, ret %d\n", ret);
return;
}
-
+
/* 取消3号GPIO管脚中断服务程序 */
- ret = GpioUnSetIrq(3);
+ ret = GpioUnsetIrq(3, NULL);
if (ret != 0) {
HDF_LOGE("GpioUnSetIrq: failed, ret %d\n", ret);
return;
}
- ```
+```
## 使用实例
@@ -484,7 +425,7 @@ GPIO标准API通过GPIO管脚号来操作指定管脚,使用GPIO的一般流
读者可以根据自己使用的开发板,参考其原理图,选择一个空闲的GPIO管脚即可。
-```
+```c
#include "gpio_if.h"
#include "hdf_log.h"
#include "osal_irq.h"
@@ -550,7 +491,7 @@ static int32_t TestCaseGpioIrqEdge(void)
OsalMDelay(200); /* wait for irq trigger */
timeout += 200;
}
- (void)GpioUnSetIrq(gpio);
+ (void)GpioUnsetIrq(gpio, NULL);
return (g_irqCnt > 0) ? HDF_SUCCESS : HDF_FAILURE;
}
```