LiteOS GPIO中断处理

在LiteOS系统里主要使用IoTGpioRegisterIsrFunc函数注册GPIO的中断:

函数原型:
unsigned int IoTGpioRegisterIsrFunc(unsigned int id, IotGpioIntType intType, IotGpioIntPolarity intPolarity, GpioIsrCallbackFunc func, char *arg)

参数功能:
id参数指定IO口, intType指定中断触发方式(LEVEL高/低电平时中断,EDGE上升/下降边沿时中断)
intPolarity指定IO口什么电平状态时触发中断, 双边沿:IOT_GPIO_EDGE_FALL_LEVEL_LOW|IOT_GPIO_EDGE_RISE_LEVEL_HIGH
func参数指定中断处理函数, arg参数指定中断处理函数执行传递的参数


按键1GPIO的中断处理:


#include <stdio.h>
#include <ohos_init.h> 
#include <hi_io.h>
#include <iot_gpio.h>
#include <iot_errno.h>
#include <unistd.h>
#include <cmsis_os2.h>

#define KEY_IO    HI_IO_NAME_GPIO_11
#define KEY_FUNC  HI_IO_FUNC_GPIO_11_GPIO

void key_isr(void *arg)
{
    //获取按键IO口的电平来判断是按下还是松手
    int v;
    IoTGpioGetInputVal(KEY_IO, &v);
    if (v)
        printf("key up\n");
    else
        printf("key down\n");
}

void myhello_test()
{
    IoTGpioInit(KEY_IO);
    hi_io_set_func(KEY_IO, KEY_FUNC);
    hi_io_set_pull(KEY_IO, HI_IO_PULL_UP);
    hi_io_set_schmitt(KEY_IO, HI_TRUE);//打开硬件消抖功能
    IoTGpioSetDir(KEY_IO, IOT_GPIO_DIR_IN);

    IoTGpioRegisterIsrFunc(KEY_IO, IOT_INT_TYPE_EDGE, 
            IOT_GPIO_EDGE_FALL_LEVEL_LOW|IOT_GPIO_EDGE_RISE_LEVEL_HIGH, key_isr, NULL);

}

SYS_RUN(myhello_test);

这里比较奇怪,小熊派开发有些工作正常,有些只能获取松手时的上升沿中断。

相关推荐

  1. 处理器中断处理

    2024-07-11 20:36:01       50 阅读
  2. LiteOS GPIO中断处理

    2024-07-11 20:36:01       20 阅读
  3. Linux的中断中断处理

    2024-07-11 20:36:01       49 阅读
  4. 理解计算机中的中断中断处理

    2024-07-11 20:36:01       65 阅读
  5. 什么是中断?STM32F407中断处理

    2024-07-11 20:36:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 20:36:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 20:36:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 20:36:01       58 阅读
  4. Python语言-面向对象

    2024-07-11 20:36:01       69 阅读

热门阅读

  1. python如何与前端交互

    2024-07-11 20:36:01       15 阅读
  2. 模型需要从txt中长文本中精准提炼出来文字

    2024-07-11 20:36:01       22 阅读
  3. vue3 学习笔记04 -- axios的使用及封装

    2024-07-11 20:36:01       24 阅读
  4. 大模型融入云平台,信息化走向数智化

    2024-07-11 20:36:01       20 阅读
  5. 开源项目有哪些机遇与挑战?

    2024-07-11 20:36:01       22 阅读
  6. 精通 mysqldumpslow:深度分析 MySQL 慢查询日志

    2024-07-11 20:36:01       22 阅读
  7. 定个小目标之刷LeetCode热题(41)

    2024-07-11 20:36:01       19 阅读
  8. 详细介绍一下TypeScript

    2024-07-11 20:36:01       23 阅读
  9. Ant-Vue——modal对话框

    2024-07-11 20:36:01       23 阅读
  10. windows 修改 npmrc

    2024-07-11 20:36:01       22 阅读
  11. Python图形用户界面的文本文件加密工具

    2024-07-11 20:36:01       26 阅读
  12. [QT入门]树形视图控件

    2024-07-11 20:36:01       22 阅读