版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.3鸿蒙设备GPIO应用开发本章主要讲述鸿蒙设备GPIO应用开发。通过学习本节将能够了解鸿蒙系统设备GPIO应用开发。通过本节学习可以熟悉:华为海思的GPIO操作函数鸿蒙系统的GPIO操作函数鸿蒙系统的GPIO中断处理华为海思的GPIO操作函数鸿蒙系统的GPIO操作函数鸿蒙系统的GPIO中断处理华为海思的GPIO操作函数(1/7)
GPIO(GeneralPurposeInput/Output,通用输入输出口)主要作为输入或输出功能使用,当需要用代码主动控制GPIO输出高低电平时,GPIO应当设置输出功能;当需要通过GPIO获取连接设备输出的高低电平时,GPIO应当设置输入功能。Hi3861芯片手册中GPIO_03GPIO的用途选择寄存器:华为海思的GPIO操作函数(2/7)LED连接到GPIO_02引脚,GPIO_02应当被配置为输出功能。当GPIO_02引脚输出高电平时,LED亮;而当GPIO_02输出低电平时,LED熄。华为海思的GPIO操作函数(3/7)Hi3861共有15个多功能的GPIO,在鸿蒙工程中的hi_io.h头文件,芯片厂家已定义好表示每个GPIO的枚举常量:typedefenum{HI_IO_NAME_GPIO_0,//表示GPIO0...HI_IO_NAME_GPIO_14,//表示GPIO14...}hi_io_name;由此可见,HI_IO_NAME_GPIO_2对应着GPIO_02引脚。华为海思的GPIO操作函数(4/7)
在hi_io.h头文件中,也定义一系列的枚举常量描述每个GPIO可选择使用的功能,例如GPIO_02的功能描述为:typedefenum{
HI_IO_FUNC_GPIO_2_GPIO,
//该引脚可作为通用GPIO,用于连接输入输出高低电平的设备。
HI_IO_FUNC_GPIO_2_UART1_RTS_N=2,
//该引脚可作为第1个UART控制器的硬件流控功能引脚。
HI_IO_FUNC_GPIO_2_SPI1_TXD,
//作为第1个SPI控制器的数据发送引脚
HI_IO_FUNC_GPIO_2_JTAG_TRSTN,
//作为连接JTAG调试器的功能引脚
HI_IO_FUNC_GPIO_2_PWM2_OUT,
//作为第2个PWM控制器信号输出引脚
HI_IO_FUNC_GPIO_2_SSI_CLK=7,
//作为SSI控制器的时钟输出引脚}hi_io_func_gpio_2;华为海思的GPIO操作函数(5/7)Hi3861的每个GPIO都是多用途功能的,但某一时刻只能选择其中一种功能。同时在hi_io.h头文件中提供了设置GPIO用途的函数:
hi_u32hi_io_set_func(hi_io_nameid,hi_u8val);用法:由于GPIO_2仅需通过输出高低电平即可实现控制LED的亮灭,因此应将GPIO_02引脚配置为GPIO引脚用途,相应的设置代码如下:
hi_io_set_func(HI_IO_NAME_GPIO_2,HI_IO_FUNC_GPIO_2_GPIO);若要使GPIO默认保持高低电平状态,可以配置GPIO的上下拉功能,该功能由hi_io.h头文件中的配置函数提供:
hi_u32hi_io_set_pull(hi_io_nameid,hi_io_pullval);用法:如设置GPIO_02引脚默认处于高电平状态,则设置上拉的代码应当如下:hi_io_set_pull(HI_IO_NAME_GPIO_2,HI_IO_PULL_UP);华为海思的GPIO操作函数(6/7)typedefenum{HI_GPIO_IDX_0,//表示GPIO0...HI_GPIO_IDX_14,//表示GPIO14}hi_gpio_idx;与hi_io.h中GPIO的枚举常量相对应,也可以直接使用hi_io.h中的常量用于设置id对应的GPIO选择dir值指定的输入或输出功能,注意IO须设置GPIO用途。hi_u32hi_gpio_set_dir(hi_gpio_idxid,hi_gpio_dirdir);typedefenum{HI_GPIO_DIR_IN=0,//表示输入
HI_GPIO_DIR_OUT//表示输出
}hi_gpio_dir;
表示输入与输出功能的枚举类型华为海思的GPIO操作函数(7/7)设置id对应的GPIO输出val值指定的高或低电平,注意GPIO须设置输出功能hi_u32hi_gpio_set_ouput_val(hi_gpio_idxid,hi_gpio_valueval);typedefenum{HI_GPIO_VALUE0=0,//表示低电平HI_GPIO_VALUE1//表示高电平}hi_gpio_value;表示GPIO电平状态的枚举类型获取id对应的GPIO输出电平状态,val参数为一个hi_gpio_value变量的地址,用于存放电平状态值hi_u32hi_gpio_get_output_val(hi_gpio_idxid,hi_gpio_value*val);获取id对应的GPIO输入电平状态,val参数为hi_gpio_value类型变量的地址,用于存放获取的电平状态hi_u32hi_gpio_get_input_val(hi_gpio_idxid,hi_gpio_value*val)华为海思的GPIO操作函数鸿蒙系统的GPIO操作函数鸿蒙系统的GPIO中断处理鸿蒙系统的GPIO操作函数(1/2)
鸿蒙系统在iot_gpio.h头文件中提供了大量以IoT开头命名的通用操作函数申请并标记使用id对应的GPIO,在多人协同开发中避免重复使用同一个IOunsignedintIoTGpioInit(unsignedintid);申请成功返回IOT_SUCCESS(值0),失败返回IOT_FAILURE
设置指定id对应的GPIO功能,dir指定的输入或输出功能unsignedintIoTGpioSetDir(unsignedintid,IotGpioDirdir);typedefenum{
IOT_GPIO_DIR_IN=0,
//表示输入
IOT_GPIO_DIR_OUT
//表示输出}IotGpioDir;输入输出类型鸿蒙系统的GPIO操作函数(2/2)
typedefenum{IOT_GPIO_VALUE0=0,//表示低电平IOT_GPIO_VALUE1//表示高电平}IotGpioValue;
在IoT函数中表示GPIO电平状态的枚举类型设置id对应的GPIO输出val指定的高低电平unsignedintIoTGpioSetOutputVal(unsignedintid,IotGpioValueval);获取id对应的GPIO输出电平状态,并将输出的电平值存入val指向的变量unsignedintIoTGpioGetOutputVal(unsignedintid,IotGpioValue*val);获取id对应的GPIO输入电平状态,并将获取的电平值存入val指向的变量unsignedintIoTGpioGetInputVal(unsignedintid,IotGpioValue*val);华为海思的GPIO操作函数鸿蒙系统的GPIO操作函数鸿蒙系统的GPIO中断处理鸿蒙系统的GPIO中断处理(1/2)
只要GPIO的电平状态符合设定的中断触发条件,
系统就会暂停当前工作而执行GPIO中断处理函数,中断处理函数执行完成后,系统会恢复之前的工作。Hi3861的GPIO共有4种中断触发条件,可设置GPIO电平在高电平、低电平、下降沿(从高电平变成低电平的过程)与上升沿(从低电平变成高电平的过程)状态时触发中断。鸿蒙系统的GPIO中断处理(2/2)
在iot_gpio.h中提供的IoTGpioRegisterIsrFunc函数注册并设定GPIO的中断触发条件、中断处理函数等。unsignedintIoTGpioRegisterIsrFunc(unsignedintid,IotGpioIntTypeintType,IotGpioIntPolarityintPolarity,GpioIsrCallbackFuncfunc,char*arg);参数列表:id:用于指定GPIOintType:指定中断类型
值IOT_INT_TYPE_LEVEL表示电平(高/低电平)触发中断
值IOT_INT_TYPE_EDGE表示边沿(上升/下降沿)触发中断intPolarity:指定中断触发的电平状态
值IOT_GPIO_EDGE_FALL_LEVEL_LOW表示低电平或下降沿状态触发中断,具体由intType中断类型指定
值IOT_GPIO_EDGE_RISE_LEVEL_HIGH表示高电平或上升沿状态触发中断fu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GBT 20769-2008 水果和蔬菜中450种农药及相关化学品残留量的测定 液相色谱-串联质谱法》专题研究报告
- 《GBT 9910-2008船用外部单扇门门框通孔》专题研究报告
- 《FZT 74004-2016滑雪手套》专题研究报告:标准深度与产业未来展望
- 道路保洁消防安全培训课件
- 2026年辽宁高考文综真题试卷+答案
- 道德与法治新教材培训课件
- 中国整形美容诊疗镇静镇痛麻醉操作技术规范(2023)解读
- 脉冲气压喷雾水枪安装方案
- (2025)货物分拣效率工作总结(3篇)
- 2025年新高考-新课标下教学改革落地与课程适配年度总结(2篇)
- 2025年国资委主任年终述职报告
- 工程顾问协议书
- 大学教学督导与课堂质量监控工作心得体会(3篇)
- 广东省汕头市金平区2024-2025学年九年级上学期期末化学试卷(含答案)
- 项目专家评审意见书标准模板
- 2025年高中计算机操作试题题库及答案
- 2026年山西信息职业技术学院单招职业技能测试题库及参考答案详解1套
- 收购软件的合同范本
- 麻醉科麻醉后恶心呕吐预防指南
- 04 《生于忧患死于安乐》对比阅读(解析版)
- 外贸三方协议出口合同
评论
0/150
提交评论