嵌入式GPIO学习笔记

合集下载

嵌入式最基础的GPIO接口操作了解一下!

嵌入式最基础的GPIO接口操作了解一下!

嵌入式最基础的GPIO接口操作了解一下!1、GPIOGPIO(General Purpose Input/Output Port),即通用输入输出端口,就是芯片的一些引脚。

作为输入端口时,我们可以通过它们读入引脚的状态--高电平或低电平,作为输出端口时,我们可以通过它们输出高电平或低电平来控制连接的外围设备。

S3C2440有130个GPIO引脚,分为A~J共9组:GPA、GPB、…、GPJ。

通过设置相应的寄存器来设置某个引脚的功能(输入或输出或是其他特殊功能)。

2、通过寄存器操作GPIO每个端口可以很容易的通过软件配置以满足各种系统配置和设计需求,在使用之前你必须定义每个引脚的功能,如果不是用于复用功能,则引脚可以配置为普通输入输出端口。

1)端口配置寄存器GPxCON(x为A~J)GPxCON是用于选择引脚功能。

PORT A的端口配置寄存器GPACON中每一位对应一个引脚(PORT A共23个引脚,bit0~bit22对应GPA0~GPA22)。

当某位被设为0时,相应的引脚被设置成输出引脚,此时可以在GPADAT中相应位写入0或1让此引脚输出低电平或高电平。

当某位被设为1时,相应的引脚被设为地址线或用于地址控制,此时GPADAT无用。

(GPACON通常被设为全1,以便访问外部存储器件)PORT B~PORT J的端口配置寄存器操作完全相同:GPxCON中每两位控制一个引脚,00为输入、01为输出、10为特殊功能、11保留。

2)端口数据寄存器GPxDAT(x为A~J)GPxDAT是用于读/写引脚数据。

当引脚被设为输入时,读此寄存器可得到相应引脚的电平状态是高还是低;当引脚被设为输出时,通过写此寄存器的相应位可设置相应引脚输出高电平或低电平。

3)端口上拉寄存器GPxUP(x为B~J,注意:PORT A端口没有这个寄存器)GPxUP是用于选择是否使用内部上拉电阻。

此寄存器的某位被设置为1时,相应引脚不使用内部上拉电阻;设置为0时,相应引脚使用内部上拉电阻。

嵌入式学习笔记之GPIO详解

嵌入式学习笔记之GPIO详解

嵌入式学习笔记之GPIO详解
一、什幺是GPIO:
 GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。

在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。

而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。

对这些设备/电路的控制,使用传统的串行口或并行口都不合适。

所以在微控制器芯片上一般都会提供一个通用可编程IO接口,即GPIO。

接口至少有两个寄存器,即通用IO控制寄存器与通用IO数据寄存器。

数据寄存器的各位都直接引到芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立的加以设置。

这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。

 二、GPIO之LCD控制编程:
 S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、、、、GPJ,可以通过设置寄存器来确定某个引脚用于输入、输出还是特殊功能。

比如:可以设置GPH6作为输入、输出、或者用于串口。

 1、通过寄存器来操作GPIO引脚。

《ARM嵌入式系统初级教程(基于Cortex-M0)》GPIO寄存器

《ARM嵌入式系统初级教程(基于Cortex-M0)》GPIO寄存器

《ARM嵌入式系统初级教程(基于Cortex-M0)》第一章GPIO1.1 GPIO本节以LPC1100系列Cortex-M0微控制器为例介绍了ARM微控制器的GPIO功能模块,包括如下内容:● GPIO的基本功能和扩展功能以及相关的基本概念、原理、结构;● GPIO功能的相关寄存器及其功能,以及寄存器的操作示例;● GPIO基本操作的部分重要知识点。

1.1.1 GPIO简介GPIO(General purpose Input/Output,通用输入/输出),顾名思义,它是一种用于完成(数字量)输入/输出的常规功能设备,广泛使用于从单片机到ARM 微控制器的各种微控制器。

表1.1给出了LPC1100系列Cortex-M0微控制器的GPIO资源。

表1.1 LPC1100系列Cortex-M0微控制器的GPIO资源1.1.2 寄存器汇总LPC1100系列Cortex-M0微控制器的GPIO相关寄存器见表1.2。

表1.2 寄存器汇总★ 请读者注意,在读写GPIO相关寄存器内的引脚功能位时,须确认该位对应的引脚是否存在。

例如,LPC1111的端口2只有一根引脚PIO2_0,那么读者在访问LPC1111内端口2对应的引脚方向寄存器GPIO2DIR时,只能访问GPIO2DIR的位0,访问其它位都是无效的,因为其它位没有对应的可配置引脚(GPIO2DIR寄存器的位功能描述见图1.1)。

1.1.3 输入/输出功能1.简介图1.1是ARM微控制器GPIO中和输入/输出功能相关部分的功能框图。

图1.1 GPIO输入/输出由图1.1可知,ARM微控制器通过输入/输出数据寄存器存储GPIO引脚上的数据;通过输入/输出接口电路,令输出的电平信号驱动外界设备并使输入的电平信号能够被ARM微控制器准确识别和处理。

从单片机到ARM微控制器,在输入/输出的功能上,GPIO的基本结构和工作原理变化不大,下面对相关寄存器及其操作进行介绍。

嵌入式系统设计(基于ST32F4) 课件 5 GPIO结构及应用

嵌入式系统设计(基于ST32F4) 课件    5 GPIO结构及应用

嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.3 GPIO典型应用步骤及常用库函数
5.3.2 GPIO常用函数
头文件:stm32f4xx_gpio.h 源文件:stm32f4xx_gpio.c
1、1个初始化函数:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
5.3 GPIO典型应用步骤及常用库函数
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.3 GPIO典型应用步骤及常用库函数
5.3.1 GPIO典型应用步骤
使用库函数实现片上外设的控制,一般需要以下几步:
1、使能相应片上外设的时钟(非常重要),设计到的文件有
头文件:stm32f4xx_rcc.h 源文件:stm32f4xx_rcc.c 使用的主要函数:
每个GPIO有16个引脚,每个引脚都可以单独配置。
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.1 GPIO 结构原理
1. GPIO 功能描述
根据应用需求,可通过软件将通用I/O (GPIO) 端口对应的各个引脚位分 别配置为多种模式: ● 输入浮空-上电默认模式 ● 输入上拉 ● 输入下拉 ● 模拟功能 ● 具有上拉或下拉功能的开漏输出 ● 具有上拉或下拉功能的推挽输出 ● 具有上拉或下拉功能的复用功能推挽 ● 具有上拉或下拉功能的复用功能开漏
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.2 GPIO相关寄存器
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院

嵌入式gpio实验总结

嵌入式gpio实验总结

嵌入式gpio实验总结嵌入式GPIO实验总结嵌入式系统是指将计算机硬件系统集成在其他电子设备中的计算机系统。

在嵌入式系统中,GPIO(General Purpose Input/Output)是一种通用输入输出接口,用于与外部设备进行数字信号的交互。

在本次实验中,我们通过使用嵌入式GPIO接口,控制外部设备的输入和输出,以实现特定功能。

在实验过程中,我们首先了解了GPIO的基本原理和使用方法。

GPIO接口通常由一组引脚组成,每个引脚可以配置为输入或输出模式。

通过配置引脚的模式和状态,我们可以向外部设备发送信号或接收外部设备发送的信号。

在配置GPIO引脚之前,我们需要确定引脚的编号和所属的GPIO 控制器。

不同的嵌入式平台或开发板可能具有不同的GPIO引脚编号和控制器。

因此,在实验开始之前,我们需要查阅相关文档或资料,以确定正确的引脚编号和控制器。

在配置GPIO引脚之后,我们可以使用相应的API函数来读取或写入引脚的状态。

对于输出模式的引脚,我们可以使用API函数将引脚状态设置为高电平或低电平,从而控制外部设备的行为。

对于输入模式的引脚,我们可以使用API函数读取引脚的状态,以获取外部设备发送的信号。

在实验过程中,我们使用了一些常见的外部设备,如LED灯、按钮和蜂鸣器,来演示GPIO的使用。

通过配置GPIO引脚,并使用相应的API函数,我们成功地控制了LED灯的亮灭、按钮的检测和蜂鸣器的鸣叫。

这些操作都是通过对GPIO引脚的状态进行读取或写入实现的。

通过本次实验,我们深入了解了嵌入式GPIO的原理和使用方法。

GPIO接口在嵌入式系统中具有广泛的应用,可以用于控制各种外部设备,实现各种功能。

掌握了GPIO的使用,我们可以根据实际需求,灵活地配置和控制嵌入式系统的输入输出,从而实现更多的功能和应用。

总结起来,嵌入式GPIO实验是学习嵌入式系统的重要一环。

通过实验,我们了解了GPIO的基本原理和使用方法,掌握了配置和控制GPIO引脚的技巧。

1-嵌入式课程笔记20190301

1-嵌入式课程笔记20190301

今天主要讲述的内容:1.GPIO口的介绍2.Keil工程的建立3.相关工程文件的分析第一:GPIO口的介绍1.功能介绍教材的第五章:GPIO技术手册《STM32F10x-ref》的8 通用和复用功能I/O(GPIO和AFIO)开发板的原理图:《信盈达STM32F103开发板原理图》开发板上面的芯片是STM32F103ZET6,这个芯片是144引脚的。

咱们看一下原理图上面的芯片引脚图。

一共有7个IO口:PA—PG,每一个IO口有16个引脚,引脚名称为PX0—PX15。

在单片机里面,在单片机里面IO引脚的作用:·输出:·输入:·复用:在STM32里面,引脚的作用如下:─ 输入浮空─ 输入上拉─ 输入下拉─ 模拟输入─ 开漏输出─ 推挽式输出─ 推挽式复用功能─ 开漏复用功能单片机和STM32都是微控制器,只能够处理数字信号,也就是逻辑0和逻辑1.在单片机里面:逻辑0代表低电平0V,逻辑1代表高电平5V;在STM32里面:逻辑0代表低电平0V,逻辑1代表高电平3.3V;输出功能:就是芯片的引脚能够输出逻辑0或者逻辑1,进而控制外部电路某一点的电压情况。

例如:LED灯电路;输入功能:用来检测外部电路某一点的电势是否发送变化,当然检测到的情况只有逻辑0或者逻辑1,检测的结果保持到芯片内部。

例如:KEY上拉:初始化某一点的电压为高电平;下拉:初始化某一点的电压为低电平。

浮空:没有上下拉。

开漏输出:只能够输出0,不能够输出1,如果要想输出1,就必须外接上拉电阻;推挽输出:能够输出0或者1.复用:引脚配合芯片的其他功能。

模拟功能:处理模拟信号的。

你通过分析你的外部硬件电路,知道需要把相应的CPU引脚配置为那种工作模式。

2.引脚内部电路结构:CPU就是硬件电路,只是这个电路可以实现很多的功能,具体你需要那种功能就有你自己来配置。

3.寄存器介绍STM32的引脚有这么多功能,如何控制???通过配置相应的寄存器来实现相应的功能。

gpio实验心得

gpio实验心得

gpio实验心得一、引言GPIO(General Purpose Input/Output)是通用的输入输出引脚,广泛应用于各种嵌入式系统和电子设备中。

通过对GPIO的实验,我深入了解了它的原理和应用,并从中收获了一些心得体会。

二、GPIO的原理和基本概念2.1 GPIO的定义和功能GPIO是一种通用的数字输入输出引脚,它可以通过软件控制来实现输入和输出功能。

GPIO引脚可以作为输入引脚接收外部信号,也可以作为输出引脚发送信号给外部设备。

2.2 GPIO的工作原理GPIO是通过寄存器来控制的,通过对寄存器的读写操作,可以改变GPIO引脚的状态。

GPIO引脚可以配置为输入模式或输出模式,输入模式下可以读取外部信号的状态,输出模式下可以发送信号给外部设备。

2.3 GPIO的应用场景GPIO广泛应用于各种嵌入式系统和电子设备中,例如单片机开发、物联网设备、传感器和执行器的控制等。

通过GPIO可以与外部设备进行通信和控制,实现各种功能。

三、GPIO的实验步骤和实验结果3.1 实验准备在进行GPIO实验之前,我们需要准备一些硬件设备和软件工具。

硬件方面,我们需要一块开发板和相关的连接线;软件方面,我们需要一个GPIO编程的开发环境。

3.2 实验步骤1.连接硬件设备:将开发板和计算机通过USB线连接,并将其他需要的设备连接到GPIO引脚上。

2.配置开发环境:安装GPIO编程的开发环境,并进行相应的配置。

3.编写程序:使用GPIO编程的开发环境,编写程序来控制GPIO引脚的输入和输出。

4.编译和下载:将程序编译成可执行文件,并下载到开发板上。

5.运行实验:通过触发输入信号或发送输出信号,观察实验结果。

3.3 实验结果在进行GPIO实验的过程中,我成功地实现了一些功能,例如读取外部开关的状态、控制LED的亮灭等。

通过实验,我对GPIO的原理和应用有了更深入的理解,并且掌握了GPIO编程的基本技巧。

四、GPIO实验的心得体会4.1 学习了硬件和软件的结合GPIO实验需要将硬件设备和软件编程结合起来,通过编写程序来控制硬件设备的状态。

《嵌入式系统原理及应用》实验---通用目的输入输出口 GPIO 使用实验

《嵌入式系统原理及应用》实验---通用目的输入输出口 GPIO 使用实验

1、熟悉 GPIO 内部结构和工作模式、2、掌握基于库函数的开发方法3、掌握 GPIO 输入输出控制STM32 固件库向下实现与寄存器的直接相关操作, 向上为用户提供配置寄存 器的标准接口。

Typedef struct {U16 GPIO_Pin;GPIOSpeed_TypeDef GPIOMode_TypeDef } GPIO_InitTypeDef; GPIO_SetBits GPIO_Speed; GPIO_Mode;1LCDGPIO_SetBits(GPIOA,GPIO_Pin_8); //PA8=1 ,背光灯亮;GPIO_ResetBits(GPIOA,GPIO_Pin_8); //PA8=0 ,背光灯灭。

(1)复制创建的工程模板文件夹到桌面,并将文件夹改名为“LCD 背光控制”。

将原工程模板编译一下,直到没有错误和警告为止。

(2)在main.c 文件中输入如下源程序,对GPIO 管脚进行初始化,给PA.8 引脚赋值控制LCD 背光亮灭。

编译工程,如没有错误,则会在output 文件夹中生成“工程模板.hex”文件,如有错误则修改源程序直至没有错误为止。

(3)将生成的目标文件通过ISP 软件下载到开发板微控制器的FLASH 存储器当中,复位运行,检查实验效果。

LED在STM32 的工程里添加用户自己的.c 和.h 文件,保存在外设文件夹内。

(1)新建led.c 和led.h 文件并将其保存在APP 文件夹led 目录中。

(2)编写led.c 源代码,保存。

(3)编写led.h 源代码,保存在MDK 中设置包含头文件路径。

(4)编写主函数,完成LCD 背光控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GPIO学习笔记
一、GPIO工作原理
根据具体型号不同,STM32F103微控制器的GPIO可以提供最多112个多功能双向I/O引,这些1/O引脚GPIOA,GPIOB、GPIOC、GPIOD、GPIOE、GPIO和GPG等端口中,其中,端口号通常以大写字母命名,从“A”开始,依次类推,每个端口有16个I/O引脚,通常以数字命名,从0开始,直到15为止。

例如,STM32F103RCT微控制器的GPIOA有16个引脚、分别为PAO、PA1,PA2,……PA15。

二、内部结构
输出驱动器(普通输出,复用功能输出):由多路选择器、输出控制和一对互补的MOS管组成。

输入驱动器:(模拟输入,上拉输入,下拉输入,浮空输入)由TTL肖特基触发器、带开关的上拉电阻电路盒带开关的下拉电阻电路组成。

三、工作模式:
(1)普通推挽输出:引脚可输出低电平和高电平,用于较大功率驱动的输出。

(2)普通开漏输出:引脚只能输出低电平。

(3)复用推挽输出:引脚不仅具有推挽输出的特点,还使用片内外设的功能。

(4)复用开漏输出:引脚不仅具有开漏输出特点,而且还使用片内外设功能。

(5)上拉输入:用于默认上拉至高电平输入。

(6)下拉输入:用于默认下拉至高电平输入。

(7)浮空输入:用于不确定高电平输入。

(8)模拟输入:用于外部模拟信号输入。

四、GPIO相关库函数:
GPIO_DeInit:将外设GPIOx寄存器恢复为复位启动时的默认值。

GPIO_Init:根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器。

GPIO_SetBits:指定GPIO端口的指定引脚置高电平。

GPIO_ResetBits:指定GPIO端口的指定引脚置低电平。

GPIO_Write:向指定GPIO端口写入数据。

GPIO_ReadOutputDataBit:读取指定GPIO端口的指定引脚的输出。

GPIO_ReadOutputData:读取指定GPIO端口的输出。

GPIO_ReadInputDataBit:读取指定GPIO端口的指定引脚的输入。

GPIO_ReadInputDate:读取指定GPIO端口的输入。

GPIO_EXTITLineConfig:选择被用作外部中断/事件线的GPIO引脚。

五、开发实例步骤
1、功能要求
2、硬件设计
3、软件流程设计
4、软件代码实现
5、软件模拟仿真
6、下载到硬件运行
六、总结
通过本单元的学习,我初步了解了关于GPIO相关知识内容,对于工程创建,基本的程序处理以及实例构建,通过实际操作有了初步经验,对于嵌入式开发产生了第一印象。

对于本单元,我是有很大收获的,尤其是理解了,借助GPIO,微控制器可以实现对外围设备最简单最直观的监控,体现其掌握的必要性,让我有了继续学习的信心。

相关文档
最新文档