openharmony用ubuntu编写中断
第一部分:代码结构
软件部分目录结构
gpio_input_demo
├─ BUILD.gn
└─gpio_input_int.c
我们打开文件
代码打开gpio_input_int.c
不同SOC芯片由于其GPIO控制器型号、参数、以及控制器驱动的不同,GPIO管脚号的换算方式不一样。
主要函数
头文件
#include "iot_gpio.h" // OpenHarmony HAL API:IoT硬件设备操作接口-GPIO
#include "hi_io.h" // 海思Pegasus SDK API:IoT硬件设备操作接口-IO
注册中断函数
IoTGpioRegisterIsrFunc(引脚,触发模式,触发方法,中断处理函数,NULL);
引脚:
开发板上要用的GPIO引脚号
触发模式:
电平触发:IOT_INT_TYPE_LEVEL==0
边沿触发触发:IOT_INT_TYPE_EDGE
触发方法:
如果是电平触发的情况下:
0为低电平触发,1为高电平触发
如果是边沿触发的情况下:
0为下降沿触发,1为上升沿触发
参数IOT_GPIO_EDGE_FALL_LEVEL_LOW==0,IOT_GPIO_EDGE_RISE_LEVEL_HIGH==1
中断处理函数:
如果创建的函数为 void XXX(){}
那么就填XXX
那么中断的时候就会执行XXX里面的代码
NULL:
中断处理函数的参数