第五章 通用和复用功能IO口资料

合集下载

第5讲 通用IO口(xkj201611)4

第5讲 通用IO口(xkj201611)4
LOGO
数字I/O端口模块通过64个16位寄存器来设置所有I/O引脚的功能 这些寄存器大概可以分为以下六类
-复用控制寄存器GPxMUX,确定I/O引脚为基本功能,还是 通用I/O功能引脚
- 方向控制寄存器GPxDIR-用来控制I/O引脚的数据方向 -数据寄存器GPxDAT-用来控制I/O引脚的数据 - 设置寄存器GPxSET-用来设置输出引脚的数据(高电平有效) - 清除寄存器GPxCLEAR-用来清除输出引脚的数据(高电平有效) -切换寄存器GPxTOGGLE-用来切换输出引脚的数据(高电平有效) LOGO
no qualification (SYNC to SYSCLKOUT) QUALPRD = SYSCLKOUT/2 QUALPRD . = SYSCLKOUT/4 . QUALPRD = SYSCLKOUT/510
. .
. .
C28x GPIO MUX/DIR Registers
Address 70C0h 70C1h 70C2h 70C4h 70C5h 70C6h 70CCh 70CDh 70CEh 70D0h 70D1h 70D2h 70D4h 70D5h 70D8h 70D9h Register GPAMUX GPADIR GPAQUAL GPBMUX GPBDIR GPBQUAL GPDMUX GPDDIR GPDQUAL GPEMUX GPEDIR GPEQUAL GPFMUX GPFDIR GPGMUX GPGDIR Name GPIO A Mux Control Register GPIO A Direction Control Register GPIO A Input Qualification Control Register GPIO B Mux Control Register GPIO B Direction Control Register GPIO B Input Qualification Control Register GPIO D Mux Control Register GPIO D Direction Control Register GPIO D Input Qualification Control Register GPIO E Mux Control Register GPIO E Direction Control Register GPIO E Input Qualification Control Register GPIO F Mux Control Register GPIO F Direction Control Register GPIO G Mux Control Register GPIO G Direction Control Register

接口技术第五章讲课

接口技术第五章讲课
2021/4/4 Nhomakorabea13
5.2.2 I/O接口的组成 (3) 状态寄存器用于记录外设现行各种状态信息,它的内容 3种寄存器是接口电路中的核心部 分。为了保证在处理器和外设之间通过接口正确地传送数
往往同微机的总线信号不兼容。不兼容性表现在两者的
信号功能定义、逻辑关系、电平高低以及工作时序的不一
致。因此,信号转换就成为接口设计中的一个重要任务。
2021/4/4
8
5.2.1 I/O接口的基本功能
4. 在微机系统中一般带有多台外设,并且一个接口中还
具有几个不同端口,而一个CPU在某一时刻里只能与一台 外设的一个端口交换信息,所以为了使计算机区分各个外 设及外设内的各个端口,这就要在接口中对I/O设备进行寻
2021/4/4
6
5.2 I/O接口的基本功能
5.2.1 I/O接口的基本功能
显然外设的多样性,必然导致接口电路的多样性。简单 地说,一个接口的基本功能是在计算机系统总线和I/O设备之 间传输信号,提供缓冲功能,以满足两边时序要求。一般来 说,CPU与I/O设备之间的接口应具有以下基本功能。
1.

• 接口就是CPU与外部世界的连接电路,是CPU与外界进行 信息交换的中转站。
• 如图所示,接口是CPU与内存及CPU与外部设备之间通
过总线进行连接的逻辑结构(电路)。
• 选用不同的外部设备(简称外设),配置相应的接口电路,
可以构成不同用途的应用系统。以后主要讨论I/O接口。
2021/4/4
2
5.1.1接口
5. 计算机与外设进行信息传送时,必须了解外设的工作
情况,才能做到正确无误的传送。所以,接口应提供微机 与I/O
6.

第5章通用和复用功能IO应用

第5章通用和复用功能IO应用

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
GPIOA
GPIO_Pin_0
清除指定的数据端口位P186
GPIOB ……
GPIO_Pin_1 ……
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
端口位配置表
速度
➢ 2M 、10M、50M为IO端口驱动电路的相应速度,并非输出信号的 速度
➢ 芯片内部在IO端口的输出部分设计了多个相应速度不同的驱动电 路,用过根据设计的需要选择驱动电路
➢ 输出信号的速度与程序有关 ➢ 高频的驱动电路噪声较高,选用低频驱动电路可以降低噪声 ➢ 输出较高的频率,选用较低频率的驱动模块,可能得到失真的输
#define GPIOE
((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF
((GPIO_TypeDef *) GPIOF_BASE)
#define GPIOG
((GPIO_TypeDef *) GPIOG_BASE)
如何使用GPIOA指向的结构体成员?
GPIO初始化结构体
如何使用GPIO数据结构?
#define PERIPH_BASE
((uint32_t)0x40000000) 定义在Stm32f10x.h中
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE #define GPIOB_BASE #define GPIOC_BASE #define GPIOD_BASE #define GPIOE_BASE #define GPIOF_BASE #define GPIOG_BASE

嵌入式系统设计(基于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相关寄存器
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院

第5章 GPIO及其编程9

第5章 GPIO及其编程9
每个引脚的功能必须在启动主程序之前进行定义。如 果一个引脚没有使用复用功能,那么它可以配置为 I/O口。
注意:端口A除了作为功能口外,只能够作为输出口 使用。
大部分端口都是复用的,需要使用端口控制寄存器来决 定每个引脚使用哪个功能。
①端口控制寄存器(GPACON-GPHCON) : 定义引 脚的功能。 如果GPF0~GPF7和GPG0~GPG7用于 掉电模式的唤醒信号,它们必须被配置成中断模式。
rGPBDAT= rGPBDAT &(~ (1<<7)); //GPB7输出低电平,LED3亮
DelaySecond(x);
rGPBDAT= rGPBDAT | (1<<7); // GPB7输出高电平,LED3灭
rGPBDAT= rGPBDAT &(~ (1<<8)); //GPB8输出低电平,LED4亮
R1 R2 R3 R4
K1 K2 K3 K4
VDD33V
LED1
R5
LED2
R6
LED3
R7
LED4
R8
图8-2 按键与LED显示电路连接图
GPB5 GPB6 GPB7 GPB8
10
2. 通用I/O端口的程序设计
通用I/O端口的设计流程如下: ①确定使用的I/O端口是输入或输出功能。 ②根据1)配置相应端口的控制寄存器GPnCON,并 根据需要设置端口的上拉电阻寄存器GPnUP。 ③设置输出端口的初始值;根据程序的功能要求编写 程序。 程序设计如下:
②端口数据寄存器(GPADAT-GPHDAT): 用于IO 功能。如果端口被配置成输出端口,可以向GPnDAT 中的相关位写入数据;如果端口被配置成输入端口, 可以从GPnDAT中的相关位读入数据。

第五章 通用输入输出端口(GPIO)

第五章 通用输入输出端口(GPIO)

GPIO的寄存器
数据寄存器: • 取反寄存器GPxTOGGLE ,反转触发每个引
脚信号; 每个IO口有一个翻转寄存器,只能写不能读, 也就是只能用在输出上,写1可以使输出翻转, 写0没有变化。 GPxTOGGLE .bit.=0,被忽略; GPxTOGGLE.bit.=1,且引脚配置为输出,则 输出翻转。
#endif
#if EXAMPLE2 //该例程使用GPxSET/GPxCLEAR寄存器反转触发I/O引脚
Gpio_example2();
#endif
#if EXAMPLE3
//该例程使用GPxTOGGLE寄存器反转触发I/O引脚
Gpio_example3();
#endif
}
本章重点小结
‘28X系列DSP的通用数字输入输出GPIO端口是复用 功能引脚,通过GPxMUX、GPxDIR、GPxQUAL等复 用功能控制寄存器以及GPxDAT、GPxSET、 GPxCLEAR和GPxTOGGLE等GPIO数据寄存器对引脚 的功能和操作进行控制;
EDIS;
}
主程序
void main(void)
{
InitSysCtrl(); //系统初始化:PLL、WatchDog、使能外设时钟
Gpio_select();
//GPIO设置
DINT;
//清除所有中断,初始化PIE向量表,关闭CPU中断
InitPieCtrl(); //将PIE控制寄存器初始化为默认值,即所有PIE中断被关闭,
GPFDIR
0x0000 70D5 1
GPGMUX
000 70D8 1
GPGDIR
0x0000 70D9 1
寄存器说明 GPIOA功能选择控制寄存器 GPIOA方向控制寄存器 GPIOA输入限定控制寄存器 GPIOB功能选择控制寄存器 GPIOB方向控制寄存器 GPIOB输入限定控制寄存器 GPIOD功能选择控制寄存器 GPIOD方向控制寄存器 GPIOD输入限定控制寄存器 GPIOE功能选择控制寄存器 GPIOE方向控制寄存器 GPIOE输入限定控制寄存器 GPIOF功能选择控制寄存器 GPIOF方向控制寄存器 GPIOG功能选择控制寄存器 GPIOG方向控制寄存器

单片机原理及接口技术第2版第5章IO口应用显示与开关键盘输入ppt课件

单片机原理及接口技术第2版第5章IO口应用显示与开关键盘输入ppt课件
对于共阴极数码管,当某个发光二极管的阳极为高电平时,发光二极 管点亮,相应的段被显示。同样,共阳极数码管的阳极连接在一起接+5V ,当某个发光二极管的阴极接低电平时,该发光二极管被点亮,相应的段 被显示。
13
装备一个 铸造车 间,需 要熔炼 设备、 造型及 制芯设 备、砂 处理设 备、铸 件清洗 设备以 及各种 运输机 械,通 风除尘 设备等 。只有 设备配 套,才 能形成 生产能 力。
装备一个 铸造车 间,需 要熔炼 设备、 造型及 制芯设 备、砂 处理设 备、铸 件清洗 设备以 及各种 运输机 械,通 风除尘 设备等 。只有 设备配 套,才 能形成 生产能 力。
图5-1 发光二极管与单片机并行口的连接
5
装备一个 铸造车 间,需 要熔炼 设备、 造型及 制芯设 备、砂 处理设 备、铸 件清洗 设备以 及各种 运输机 械,通 风除尘 设备等 。只有 设备配 套,才 能形成 生产能 力。
DJNZ R5,D2
RET
D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END
5.2 开关状态检测
;R7不为0则原地跳转
检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的 引脚上,另一端接地,然后通过检测I/O端口引脚的电平来实现。
【例5-2】 如图5-3所示,利用单片机、1个开关k和1个发光二极管LED
5.3 单片机控制LED数码管的显示 5.3.1 LED数码管显示原理
LED数码管是常见的显示器件。LED数码管为“8”字型的,共计8段( 包括小数点段在内)或7段(不包括小数点段),每一段对应一个发光二极 管,有共阳极和共阴极两种,如图5-4所示。共阳极数码管的阳极连接在一 起,公共阳极接到+5V上;共阴极数码管的阴极连接在一起,通常此公共 阴极接地。

第五章GPIO和中断

第五章GPIO和中断

例如:实现下列LED的闪烁程序
#include "stm32f10x.h“
#define LED_ALL GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4
int main(void) { unsigned char j=0; chLsd=0xFE; //打开相应外设的时钟:GPIOA RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
GPIOx_BSRR和GPIOx_BRR寄存器允许 对任何GPIO寄存器的读/更改的独立访问
端口位配置表
I/O端口位的基本结构
输入浮空/上拉/下拉配置
输出配置
复用功能配置
复用功能
对于复用的输入功能,端口必须配置成输入模 式(浮空、上拉或下拉)且输入引脚必须由外部 驱动
对于复用输出功能,端口必须配置成复用功能 输出模式(推挽或开漏)。
函数GPIO_ReadOutputData
读出C口的数据
ReadValue = GPIO_ReadOutputData(GPIOC);
函数GPIO_PinLockConfig
锁定A口的0和1管脚
GPIO_PinLockConfig(GPIOA, GPIO_Pin_0 | GPIO_Pin_1);
GPIO编程实现步骤
1启动外设模块 2设定管脚控制模式 3对GPIO寄存器进行操作
例如:实现下列LED的闪烁程序
#include "stm32f10x.h" int main(void) {
//打开相应外设的时钟:GPIOB RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); //初始化GPIOB,用于驱动LED GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高输出速度为50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); while (1) {

第5.1节 通用输入输出口(GPIO)

第5.1节 通用输入输出口(GPIO)

电气信息类专业课程DSP原理及应用——跟我动手学TMS320F2833xDSP原理及应用第5.1节通用输入/输出口(GPIO)通用输入/输出口(GPIO)TMS320F2833x系列DSP包含多达88个独立可编程复用的GPIO口。

•引脚以它们的通用I/O名称来命名(GPIO0~GPIO87)。

这些引脚可以被单独地选为数字I/O进行操作,简称为GPIO;或者被连接到不超过三个外设I/O信号中的一个信号上(通过GPxMUXn寄存器)。

•如果引脚工作在数字I/O模式,可通过寄存器配置引脚方向(通过GPxDIR寄存器),也可以限制输入信号的脉宽以消除不必要的噪声(通过GPxQSELn、GPACTRL和GPBCTRL寄存器)。

•三组32位的输入/输出端口。

端口A包含GPIO0~GPIO31,端口B包含GPIO32~GPIO63,端口C包含GPIO64~GPIO87。

GPIO模式选择控制•引脚功能分配、输入信号限制和外部中断源(XINT1~XINT7,XNMI)都是由GPIO配置控制寄存器来控制的。

•可以分配引脚来将器件从HALT和STANDBY低功耗模式唤醒,也可以使能/禁用内部的上拉电阻功能。

GPxCTRL GPIOx限制控制寄存器GPxQSELn GPIOx限制选择寄存器nGPxMUXn GPIOx复用寄存器nGPxDIR GPIOx方向寄存器GPAPUD GPIOx上拉禁用寄存器GPIOXINTxSEL XINTx源选择寄存器GPIOXNMISEL XNMI源选择寄存器GPIOLPMSEL LPM唤醒源选择寄存器GPIO配置步骤•①规划引脚功能,即规划引脚作为通用输入或输出I/O口,或复用为特殊功能外设引脚。

•②使能或禁止内部上拉功能(通过配置GPxPUD相应位)。

•③对输入引脚进行限制(通过配置GPxCTRL、GPxQSELn)。

•④配置引脚的功能(通过配置GPxMUXn)。

•⑤对于通用数字I/O口,配置引脚的方向(通过配置GPxDIR)。

io口原理-概述说明以及解释

io口原理-概述说明以及解释

io口原理-概述说明以及解释1.引言1.1 概述IO口(Input/Output port)是计算机系统中与外部设备进行信息传输的接口。

它是计算机系统中最主要的通信手段之一。

通过IO口,计算机可以与各类输入输出设备进行数据交互,实现信息的输入和输出。

IO口的作用是将计算机内部处理好的数据传送到外部设备,或接受外部设备传来的数据并传送给计算机内部进行处理。

在计算机系统中,各种外部设备(如显示器、键盘、鼠标、打印机、硬盘等)都需要通过IO口与计算机进行数据交互,以完成各自的功能。

可以说,没有IO口,计算机与外部设备之间的信息交流就无法进行。

IO口的工作原理是通过发送和接收电信号来实现数据传输。

计算机通过控制IO口的电平(高电平或低电平)来控制外部设备的工作状态,通过读取和解析外部设备发送的电信号来获取外部设备传来的数据。

这样,计算机与外部设备之间就建立了一种双向的数据传输通道。

IO口的应用领域非常广泛。

它在个人电脑、嵌入式系统、通信设备、工业自动化等领域都有着重要的应用。

在个人电脑中,各种外设如键盘、鼠标、摄像头等都是通过IO口与计算机进行连接和通信的。

在嵌入式系统中,各种传感器、执行器等设备也需要通过IO口与主控制器进行数据交互。

在通信设备和工业自动化领域,IO口可以与外部设备进行高速数据传输,实现各种通信和控制功能。

总之,IO口在计算机领域的应用非常广泛,它是计算机与外部设备之间信息交流的重要通道。

综上所述,IO口在计算机系统中具有重要的作用。

它是计算机与外部设备进行数据交换的接口,通过发送和接收电信号实现数据传输。

在各种应用领域中都存在着IO口的应用,其重要性不可忽视。

随着科技的不断发展,IO口也在不断地进化和改进,未来它将继续发挥着重要的作用,并带来更多的应用和创新。

1.2文章结构2. 正文2.1 IO口的定义和作用IO口(Input/Output port),简称IO口,是计算机系统中的一个重要组成部分。

第五章GPIO及外部中断的使用

第五章GPIO及外部中断的使用

功能描述
模拟输入 浮点输入 下拉输入 上拉输入 开漏输出 推挽输出 复用开漏输出 复用推挽输出
实例: 定义引脚PB0、PB1推挽输出,最大速率10MHz
GPIO_InitTypeDef GPIO_InitStructure;
//定义结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //开启GPIOB时 钟
第五章 GPIO及外部中断的使用
5.1 综述
STM32F10x系列端口:26、37、51、80、112个多功能 双向5V兼容的快速I/O口,所有I/O都可以映射到16个外部 中断。
STM32F10xxx系列中,每个通用I/O(GPIO)端口都有 7 个 寄 存 器 : 两 个 32 位 配 置 寄 存 器 ( GPIOx_CRL , GPIOx_CRH ) , 两 个 32 位 数 据 寄 存 器 ( GPIOx_IDR 和 GPIOx_ODR ) , 一 个 32 位 置 位 / 复 位 寄 存 器 ( GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR) 和一个32位锁存器(GPIOx_LCKP)。
5.2.1 函数GPIO_Init
3)GPIO_Mode 设置选中引脚的工作状态
GPIO_Mode可取值 GPIO_Mode_AIN GPIO_Mode_IN_FLOATING GPIO_Mode_IPD GPIO_Mode_IPU GPIO_Mode_Out_OD GPIO_Mode_Out_PP GPIO_Mode_AF_OD GPIO_Mode_AF_PP
返回值

先决条件 无
被调用函数 无
两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)

第五章 通用输入输出端口(GPIO)

第五章 通用输入输出端口(GPIO)

0x0000 70C1 1
GPAQUAL 0x0000 70C2 1
GPBMUX
0x0000 70C4 1
GPBDIR
0x0000 70C5 1
GPBQUAL 0x0000 70C6 1
GPDMUX
0x0000 70CC 1
GPDDIR
0x0000 70CD 1
GPDQUAL 0x0000 70CE 1
while(1) {
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555;
while(1)
{ GpioDataRegs.GPADAT.all =0xAAAA; delay_loop();
GpioDataRegs.GPADAT.all delay_loop(); } }
=0x5555;
使用SET/CLEAR寄存器反转触发I/O引脚
void Gpio_example2(void) {
端口设置
void Gpio_select(void)
{
Uint16 var1;
Uint16 var2;
Uint16 var3;
var1= 0x0000;
// sets GPIO Muxs as I/Os
var2= 0xFFFF;
// sets GPIO DIR as outputs
var3= 0x0000;
//所有中断,标志清零。
IER = 0x0000; //关闭CPU中断,清除所有CPU中断标志;

第五章通用和复用功能IO口

第五章通用和复用功能IO口

第五章通用和复用功能IO口1.引言通用和复用功能IO口是现代数字电路设计中的重要组成部分。

它们允许电路与外部设备进行通信和控制,实现数据的输入、输出和处理。

在本章中,我们将介绍通用和复用功能IO口的基本原理和应用。

通用功能IO口是一种通用的输入/输出接口,可以通过软件来配置不同的功能。

它可以被用作输入口,用来读取外部设备的状态;也可以被用作输出口,用来控制外部设备的运行。

通用功能IO口通常由一组引脚组成,每个引脚都可以配置为不同的功能。

通过编程的方式,我们可以根据需要来选择引脚的功能,并进行相应的输入和输出操作。

复用功能IO口是一种多功能的输入/输出接口,可以通过硬件设置来选择不同的功能。

它通常由一个多路器和多个外设模块组成。

多路器的作用是选择不同的外设模块进行连接,从而实现不同的输入和输出功能。

使用复用功能IO口,可以有效地减少芯片上的引脚数量,提高系统的可扩展性和灵活性。

4.通用功能IO口的应用通用功能IO口广泛应用于各种数字电路设计中。

它可以连接各种外设设备,如按钮、开关、传感器、LED灯等。

通过编程的方式,我们可以读取外设的状态,并根据需要来控制外设的运行。

通用功能IO口还可以连接到其他数字电路中,实现数据的输入、输出和处理。

例如,它可以与存储器、处理器、通信接口等进行连接,实现数据的存储、处理和传输。

5.复用功能IO口的应用复用功能IO口广泛应用于嵌入式系统和通信系统中。

它可以连接各种外设设备,如显示器、触摸屏、以太网接口、USB接口等。

通过硬件设置,我们可以选择不同的外设模块进行连接,并根据需要来实现不同的输入和输出功能。

复用功能IO口还可以连接到其他模块中,实现数据的传输和处理。

例如,它可以与显示模块、通信模块等进行连接,实现图形的显示、数据的传输等。

6.小结通用和复用功能IO口是现代数字电路设计中的重要组成部分。

它们允许电路与外部设备进行通信和控制,实现数据的输入、输出和处理。

通过软件和硬件的配置,我们可以选择引脚的功能,并进行相应的输入和输出操作。

STM32IO口函数GPIO使用说明

STM32IO口函数GPIO使用说明

6.GPIO 锁定机制:当在一个端口位上执行了所定(LOCK)程序,在下一 次复位之前,将不能再更改端口位的配置。
GPIO 基本设置
GPIOMode_TypeDef GPIO mode 定义及偏移地址 GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATING = 0x04, //悬空输入 GPIO_Mode_IPD = 0x28, //下拉输入 GPIO_Mode_IPU = 0x48, //上拉输入 GPIO_Mode_Out_OD = 0x14, //开漏输出 GPIO_Mode_Out_PP = 0x10, //推挽输出 GPIO_Mode_AF_OD = 0x1C, //开漏复用 GPIO_Mode_AF_PP = 0x18 //推挽复用 GPIO 输入输出速度选择: typedef enum { GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz } GPIOSpeed_TypeDef; #define IS_GPIO_SPEED(SPEED) ((SPEED == GPIO_Speed_10MHz) ||
1 STM32 的输入输出管脚有下面 8 种可能的配置:(4 输入+2 输出+2 复用输出)
① 浮空输入_IN_FLOATING
② 带上拉输入_IPU
③ 带下拉输入__OD
⑥ 推挽输出_OUT_PP
⑦ 复用功能的推挽输出_AF_PP
⑧ 复用功能的开漏输出_AF_OD
3.3 GPIO 初始化完成
==================================================== =================== 最近刚开始学习 STM32,所以从最基本的 GPIO 开始学起;首先看看 STM32 的 datasheet 上对 GPIO 口的简单介绍:每个 GPI/O 端口有两 个 32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个 32 位数据寄 存器(GPIOx_IDR,GPIOx_ODR),一个 32 位置位/复位寄存器 (GPIOx_BSRR),一个 16 位复位寄存器(GPIOx_BRR)和一个 32 位 锁定寄存器(GPIOx_LCKR)。

5 通用IO接口基本结构与输出应用

5 通用IO接口基本结构与输出应用

表6.1是AVR通用I/O端口的引脚配置情况
表中的PUD为寄存器SFIOR中的一位,它的作用相当AVR 全部I/O口内部上拉电阻的总开关。当PUD=1时,AVR所有I/O 内部上拉电阻都不起作用(全局内部上拉无效);而PUD=0时, 各个I/O口内部上拉电阻取决于DDRXn的设置。
(1).使用AVR的I/O口,首先要正确设置其工作方式,确定 其工作在输出方式还是输入方式。 (2)当I/O工作在输入方式,要读取外部引脚上的电平时, 应读取PINxn的值,而不是PORTxn的值。 (3)当I/O工作在输入方式,要根据实际情况使用或不使用 内部的上拉电阻。 (4)一旦将I/O口的工作方式由输出设置成输入方式后,必 须等待一个时钟周期后才能正确的读到外部引脚PINxn的值。
AVR通用I/O端口的主要特点为:
双向可独立位控的I/O口 Push-Pull大电流驱动 (最大40mA) 可控制的引脚内部上拉电阻 每一位引脚内部都有独立的,可通过编程设置的,设定为上 拉有效或无效的内部上拉电阻。当I/O口被用于输入状态,且 内部上拉电阻被激活(有效)时,如果外部引脚被拉低,则 构成电流源输出电流(uA量级)。 可控的方向寄存器DDRx
当PORTx=1时,I/O引脚呈现高电平,同时可提供输出 20mA的电流;而当PORTx=0时,I/O引脚呈现低电平,同时可 吸纳20mA电流。
当DDRx=0时,I/O处于输入工作方式
此时引脚寄存器PINx中的数据就是外部引脚的实际电平, 通过读I/O指令可将物理引脚的真实数据读入MCU。此外, 当I/O口定义为输入时(DDRx=0),通过PORTx的控制, 可使用或不使用内部的上拉电阻。
char i;
void main(void) { DDRC=0xff; DDRG=0xff; while(1) { for(i=0;i<8;i++) {

IO接口技术的基本知识

IO接口技术的基本知识

I/O接口技术的基本知识CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。

存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。

一、I/0接口的概念1.接口的分类I/O接口的功能是负责实现CPU通过系统总线把I/O电路和外围设备联系在一起,按照电路和设备的复杂程度,I/O接口的硬件主要分为两大类:1)I/O接口芯片这些芯片大都是集成电路,通过CPU输入不同的命令和参数,并控制相关的I/O电路和简单的外设作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA控制器、并行接口等。

2)I/O接口控制卡有若干个集成电路按一定的逻辑组成为一个部件,或者直接与CPU同在主板上,或是一个插件插在系统总线插槽上。

按照接口的连接对象来分,又可以将他们分为串行接口、并行接口、键盘接口和磁盘接口等。

2.接口的功能由于计算机的外围设备品种繁多,几乎都采用了机电传动设备,因此,CPU 在与I/O设备进行数据交换时存在以下问题:速度不匹配:I/O设备的工作速度要比CPU慢许多,而且由于种类的不同,他们之间的速度差异也很大,例如硬盘的传输速度就要比打印机快出很多。

时序不匹配:各个I/O设备都有自己的定时控制电路,以自己的速度传输数据,无法与CPU的时序取得统一。

信息格式不匹配:不同的I/O设备存储和处理信息的格式不同,例如可以分为串行和并行两种;也可以分为二进制格式、ACSII编码和BCD编码等。

信息类型不匹配:不同I/O设备采用的信号类型不同,有些是数字信号,而有些是模拟信号,因此所采用的处理方式也不同。

基于以上原因,CPU与外设之间的数据交换必须通过接口来完成,通常接口有以下一些功能:1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输;2)能够进行信息格式的转换,例如串行和并行的转换;3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模/数转换器等;4)协调时序差异;5)地址译码和设备选择功能;6)设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接受到中断和DMA应答之后完成中断处理和DMA 传输。

第五章通用和复用功能IO口

第五章通用和复用功能IO口
➢ 在APB2上的I/O脚提供高达18MHz的翻转速度。
一、引脚介绍:以STM32F103x为例
5.1 GPIO的工作原理
PE口 16脚
PC口 16脚
PA口 16脚
PD口 16脚
PB口 16脚
STM32F103包含5个端口: PA口 、PB口、PC口、 PD口、 PE口。
一、引脚介绍:以STM32F103VET6为例 5.1 GPIO的工作原理
二、IO口的基本结构
2、 GPIO的8种设置模式
5.1 GPIO的工作原理
⑴浮空输入
在上图上,蓝色以外的部分处于不工作状态,尤其是 下半部分的输出电路,实际上是与端口处于隔离状态。
蓝色的高亮部分显示了数据传输通道,外部的电平信 号通过左边编号1的I/O端口进入STM32,经过编号2的 施密特触发器的整形,送入编号3的“输入数据寄存器”, 在“输入数据寄存器”的另一端(编号4),CPU可以 随时读出I/O端口的电平状态。
对应的寄存器 配置
引脚在D上, 选择x=d
配置寄存器 GPIOx-CRL
设置数据寄 存器
寄存器操作 int main(void) {
GPIOB->CRL=0x3<<20; //配置PB5为推挽输出,50MHZ
while(1) { GPIOB->ODR=0x0; Delay(0xAFFFF); GPIOB->ODR=0x20; Delay(0xAFFFF); } }
二、IO口的基本结构
5.1 GPIO的工作原理
2、 GPIO的8种设置模式 ⑸开漏输出模式
开漏输出使用场合:
一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚 不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平 的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压, 便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。 (上拉电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功 耗越小,所以负载电阻的选择要兼顾功耗和速度。)

第5章 IO口基本结构及应用

第5章 IO口基本结构及应用

成于大气 信达天下
数码管显示程序编写(二)
Chengdu University of Information Technology
在四联共阴数码管上显示数字“1234”。
确定数码管段码所接单片机I/O口的位置; 注意位选信号所接的位置; 注意动态扫描的时序; 注意显示的频率。
成于大气 信达天下
提示:可以定义一个显存空间,固定显示这个空间
中的数,只需要改变显存里的数就可以了。
成于大气 信达天下
I/0口输入特点
Chengdu University of Information Technology
I/O口的读操作分为两种:
①读端口(输入方式)
MOV
A, P1
(直接将P1端口的数据通过读缓冲器1读入)
成于大气 信达天下
I/O口的基本应用
Chengdu University of Information Technology
在89系列单片机的应用中,通常要进行信息显示, 而显示器件大多是采用LED数码管或LCD。对LED和 LCD器件来说,它们的接口方法是不同的。因为 LED—般所需的电流较大。而且,对于数码管显示器 而言,在显示时要求给出和显示数字对应的7段或8段 显示码;对于LCD器件来说,现在已经配置了专门的 驱动电器,在进行信息显示时,往往把信息写入驱动 电路的存储器中。由于存储器和LCD显示屏是一种映 射关系,故只要写入其存储器的信息适当,则可以在 LCD中显示出对应的正确信息。
每个端口都由锁存器、输出驱动器、输入缓 冲器组成。
成于大气 信达天下
I/O端口的结构——P1口
Chengdu University of Information Technology
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、编写用户文件 配置gpio口的相关操作:初始化结构体
库函数
GPIO_InitTypeDef GPIO_InitStructure; typedef struct { uint16_t GPIO_Pin; 库文件利用关键字typedef定义的新类型
GPIOSpeed_TypeDef GPIO_Speed;
举例说明,分析流水灯例程—了解库开发流程
1地址映射 STM32固件库对寄存器的封装
#define GPIOA #define GPIOB #define GPIOC #define GPIOD #define GPIOE ((GPIO_TypeDef *) GPIOA_BASE) ((GPIO_TypeDef *) GPIOB_BASE) ((GPIO_TypeDef *) GPIOC_BASE) ((GPIO_TypeDef *) GPIOD_BASE) ((GPIO_TypeDef *) GPIOE_BASE)
typedef struct { __IO uint32_t CRL;-----0x00 __IO uint32_t CRH;-----0x04 __IO uint32_t IDR;------0x08 __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef;
GPIOMode_TypeDef GPIO_Mode; }GPIO_InitTypeDef;
举例说明,分析流水灯例程—了解库开发流程
3、编写用户文件 (1)初始化库函数 GPIO_Init
在这个函数内部,把输入的这些参数按照一定 的规则转化,进而写入寄存器,实现了配置GPIO端口 的功能
举例说明,分析流水灯例程—了解库开发流程
口。 多数 GPIO 管脚都与数字或模拟的外设共用。所有 的GPIO管脚都有大电流通过能力。 在需要的情况下, I/O 管脚的外设功能可以通过一
个特定的操作锁定,以避免意外的写入 I/O 寄存器
。 在APB2上的I/O脚提供高达18MHz的翻转速度。
一、引脚介绍:以STM32F103x为例
5.1 GPIO的工作原理
PE口 16脚
PC口 16脚 PA口 16脚
PD口 16脚 PB口 16脚
STM32F103包含5个端口: PA口 、PB口、PC口、 PD口、 PE口。
一、引脚介绍:以STM32F103VET6为例
5.1 GPIO的工作原理
补充举例说明,分析流水灯例程—了解库开发流 程
控制LED亮灭
设置GPIO引脚 oid) {
GPIOB->CRL=0x3<<20; //配置PB5为推挽输出,50MHZ while(1) { GPIOB->ODR=0x0; Delay(0xAFFFF); GPIOB->ODR=0x20; Delay(0xAFFFF); }
举例说明,分析流水灯例程—了解库开发流程
2、STM32时钟设置 在startup_stm32f10x_hd.s中运行systemInit(),
这个函数定义在system_stm32f10x.c,他的作用是设 置系统时钟,
之后调用SetSysClock( )设置具体的系统时钟
举例说明,分析流水灯例程—了解库开发流程
}
举例说明,分析流水灯例程—了解库开发流程
1地址映射 stm32f10x.h
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define PERIPH_BASE ((uint32_t)0x40000000)
3、编写用户文件 (2)控制I/O口高低电平
GPIO_SetBits 置1,led亮
GPIO_ResetBits
举例说明,分析流水灯例程—了解库开发流程
3、编写用户文件 (3)led.h头文件
(4)main文件分析
举例说明,分析流水灯例程—了解库开发流程
4、总结
1)为了控制led,要使用GPIO外设 2)了解GPIO外设的功能,如何使用 3)知道GPIO的地址映射,挂载在APB2 4)了解ST官方库对寄存器的封装 5)了解时钟树,查看GPIOC时钟来源,PCLK2 6)在stm32f10x_conf.h文件中用到的头文件stm32f10x_gpio.h 和stm32f10x_rcc.h 7)添加用户文件led.c文件 8)编写驱动初始化函数LED_GPIO_Config(void)
STM32单片机 最多有7个16位的并行 I/O端口:PA、 PB、PC、PD、PE、PF、PG。
STM32F103单片机 只有5个16位的并行 I/O端口:PA、
PB、PC、PD、PE。(实验板型号:TM32F103VET6)
一、引脚介绍
每个GPIO管脚都可以由软件配置成输出 (推拉或开
路)、输入(带或不带上拉或下拉)或其它的外设功能
1)选择GPIO端口 2)选择GPIO端口功能
3)设置GPIO输出高低电
平控制LED灯的亮灭
举例说明,分析流水灯例程—了解库开发流程
要实现功能
相应状态
对应的寄存器 配置
选定与LED硬件 相连的引脚
PD6\PD3
引脚在D上, 选择x=d
选定GPIO的 特定功能
输出功能
配置寄存器 GPIOx-CRL 设置数据寄 存器
第五章 通用和复用功能I/O
5.1 GPIO的工作原理
一、引脚介绍 二、STM32 GPIO主要功能 三、IO口的基本结构
5.2 编程举例 5.3 GPIO复用功能
一、引脚介绍
5.1 GPIO的工作原理
通用IO口,又称为GPIO(General-Purpose IO ports )CPU的一个接口模块,为一些协议比较简 单的外部设备/电路提供了一种控制手段。
#define GPIOA_BASE #define GPIOB_BASE #define GPIOC_BASE #define GPIOD_BASE #define PERIPH_BASE
(APB2PERIPH_BASE + 0x0800) (APB2PERIPH_BASE + 0x0C00) (APB2PERIPH_BASE + 0x1000) (APB2PERIPH_BASE + 0x1400) ((uint32_t)0x40000000)
相关文档
最新文档