鸿蒙嵌入式系统开发原理与实战 课件 第5章 中断及IO控制_第1页
鸿蒙嵌入式系统开发原理与实战 课件 第5章 中断及IO控制_第2页
鸿蒙嵌入式系统开发原理与实战 课件 第5章 中断及IO控制_第3页
鸿蒙嵌入式系统开发原理与实战 课件 第5章 中断及IO控制_第4页
鸿蒙嵌入式系统开发原理与实战 课件 第5章 中断及IO控制_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章中断及IO控制中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试LiteOS-m的IO控制简介

IO接口(Input/OutputInterface,输入/输出接口)是实现设备与外界交互的重要通道。LiteOS-M采用GPIO(GeneralPurposeInput/Output,通用输入/输出)作为其IO接口,并结合中断技术确保系统的实时响应能力。Hi3861芯片包含了GPIO模块,用于实现芯片引脚上数字的输入、输出功能。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试中断的概念

CPU执行程序时,由于发生了某种随机的外部或内部事件,引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。执行的服务程序称为称为中断服务程序或中断处理程序。中断处理的过程包括:中断请求、中断源识别及中断判优、中断响应、中断处理和中断返回。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试GPIO

GPIO是一种通用输入/输出接口。在嵌入式系统中,GPIO可配置为输入、输出模式。在输入模式下,可启用中断功能,以满足轮询或实时响应等不同的应用需求。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试LiteOS-M的IO控制技术

LiteOS-M中使用GPIO,通常需要以下步骤:1.初始化GPIO配置GPIO的编号、模式(输入/输出)、速度、上下拉电阻等。2.设置GPIO电平(输出模式)当引脚配置为输出模式时,通过设置GPIO的电平状态来控制外部设备。3.读取GPIO电平(输入模式)当引脚配置为输入模式时,读取GPIO的电平状态以获取外部信号。4.配置GPIO中断配置GPIO的中断触发方式(如上升沿、下降沿)和中断服务函数。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试中断及IO控制API

Hi3861的IO的相关声明函数位于device/hisilicon/hispark_pegasus/sdk_liteos/include文件夹中,hi_io.h文件声明了IO口设置的相关说明,hi_gpio.h文件声明了GPIO口控制的相关说明,下面对一些常用的API进行介绍。(1)hi_u32hi_io_set_pull(hi_io_nameid,hi_io_pullval)hi_io_set_pull函数的作用是设置某个IO口的上下拉功能,该函数有两个参数,第一个参数id为要设置的管脚,第二个参数val为要设置的上下拉状态。函数运行成功返回0,运行失败则返回其他代码。详情可查看hi_errno.h。中断及IO控制API

(2)hi_u32hi_io_set_func(hi_io_nameid,hi_u8val)hi_io_set_func函数的作用是配置某个IO口的复用功能,该函数有两个参数,第一个参数id为要配置的管脚,第二个参数val为管脚复用的功能。函数运行成功返回0,运行失败则返回其他代码。(3)hi_u32hi_io_set_driver_strength(hi_io_nameid,hi_io_driver_strengthval)hi_io_set_driver_strength函数的作用是设置某个IO驱动能力,该函数有两个参数,第一个参数id为要设置的管脚,第二个参数val为IO口的额驱动能力级别。该函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(4)hi_u32hi_io_set_input_enable(hi_io_nameid,hi_boolstate)hi_u32hi_io_set_input_enable函数的作用是设置某个IO口的输入使能状态,该函数有两个参数,第一个参数id为要设置的管脚,第二个参数val为使能状态。该函数运行成功返回0,运行失败则返回其他代码。(5)hi_u32hi_io_set_schmitt(hi_io_nameid,hi_boolis_enable)hi_io_set_schmitt函数的作用是设置某个IO口的斯密特触发器,该函数有两个参数,第一个参数id为要设置的管脚,第二个参数is_enable为斯密特触发器的状态。该函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(6)hi_u32hi_gpio_init(hi_void)hi_gpio_init函数的作用是初始化GPIO模块,需要在初始化阶段调用该接口使能GPIO中断,使得IO中断可以得到响应,并且该接口不支持重复调用,只能在初始化阶段调用一次。该函数无需传递参数,函数运行成功后返回0,运行失败则返回其他代码。(7)hi_u32hi_gpio_deinit(hi_void)hi_gpio_deinit函数的作用是去使能GPIO中断,调用后GPIO中断将得不到响应。该函数无需传递参数,函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(8)hi_u32hi_gpio_set_dir(hi_gpio_idxid,hi_gpio_dirdir)hi_gpio_set_dir函数的作用是设置某个GPIO管脚方向,该函数有两个参数,第一个参数id为GPIO的索引,第二个参数dir为要设置的方向。函数运行成功返回0,运行失败则返回其他代码。(9)hi_u32hi_gpio_get_dir(hi_gpio_idxid,hi_gpio_dir*dir)hi_gpio_get_dir函数的作用是获取某个管脚的方向,该函数有两个参数,第一个参数id为管脚的引索,第二个参数dir为获取到的管脚方向。函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(10)hi_u32hi_gpio_set_ouput_val(hi_gpio_idxid,hi_gpio_valueval)hi_gpio_set_ouput_val函数的作用是设置某个管脚的输出电平,该函数有两个参数,第一个参数id为管脚的索引,第二个参数val为要设置的输出电平。函数运行成功返回0,运行失败则返回其他代码。(11)hi_u32hi_gpio_get_output_val(hi_gpio_idxid,hi_gpio_value*val)hi_gpio_get_output_val函数的作用是获取某个管脚输出的电平状态,该函数有两个参数,第一个参数id为管脚的索引,第二个参数val为获取到的电平状态。函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(12)hi_u32hi_gpio_get_input_val(hi_gpio_idxid,hi_gpio_value*val)hi_gpio_get_input_val函数的作用是获取某个管脚的输入电平状态,该函数有两个参数,第一个参数id为管脚的索引,第二个参数val为获取到的电平状态。函数运行成功返回0,运行失败则返回其他代码。(13)hi_u32hi_gpio_register_isr_function(hi_gpio_idxid,hi_gpio_int_typeint_type,hi_gpio_int_polarityint_polarity,gpio_isr_callbackfunc,hi_void*arg)hi_gpio_register_isr_function函数的作用是使能某个GPIO的中断功能,该函数有五个参数,第一个参数id为引脚的索引,第二个参数int_type为中断类型,第三个参数int_polarity为中断极性,第四个参数func为中断的回调函数,第五个参数arg为中断回调函数的入参。函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(14)hi_u32hi_gpio_unregister_isr_function(hi_gpio_idxid)hi_gpio_unregister_isr_function函数的作用是去使能某个GPIO的中断功能,该函数只有一个参数id,为要去使能管脚的索引。函数运行成功返回0,运行失败则返回其他代码。(15)hi_u32hi_gpio_set_isr_mask(hi_gpio_idxid,hi_boolis_mask)hi_gpio_set_isr_mask函数的作用是屏蔽某个GPIO的中断功能,该函数有两个参数,第一个参数id为引脚的索引,第二参数is_mask为是否屏蔽,FALSE为不屏蔽,TRUE为屏蔽。函数运行成功返回0,运行失败则返回其他代码。中断及IO控制API

(16)hi_u32hi_gpio_set_isr_mode(hi_gpio_idxid,hi_gpio_int_typeint_type,hi_gpio_int_polarityint_polarity)hi_gpio_set_isr_mode函数的作用是设置某个管脚的中断触发方式,该函数有三个参数,第一个参数id为引脚的索引,第二个参数int_type为要设置的中断类型,第三个参数int_polarity为要设置的中断极性。该函数运行成功返回0,运行失败则返回其他代码。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试开发示例——控制LED亮灭

案例设计目标:(1)按键通过中断的方式控制LED的亮灭。中断及IO控制简介中断的概念GPIOLiteOS-M的IO控制技术中断及IO控制API3.开发示例——控制LED亮灭电路原理代码设计编译、烧录和调试开发示例——控制LED亮灭

电路原理图(图1-8):开发示例——控制LED亮灭

电路

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论