STM8 通用输入输出口--GPIO

发布者:LogicLeaper最新更新时间:2016-08-08 来源: eefocus关键字:STM8  输入输出口  GPIO 手机看文章 扫描二维码
随时随地手机看文章
简介 

通用输入/ 输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8 个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/ 输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。 
每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O 口工作在输入还是输出是取决于该口的数据方向寄存器的状态。

 GPIO主要功能 
● 端口的各个位可以被单独配置 
● 可选择的输入模式:浮动输入和带上拉输入  
● 可选择的输出模式:推挽式输出和开漏输出 
● 数据输入和输出采用独立的寄存器 
● 外部中断可以单独使能和关闭 
● 输出摆率控制用以减少EMC噪声 
● 片上外设的I/O 功能复用 
● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗 
● 在数据输出锁存时支持读-修改-写 
● 输入兼容 5V 电压 
● I/O 口工作电压范围为1.6 V  到V DDIOmax

STM8 通用输入输出口--GPIO - Wornyong - 智能物联,嵌入您我!

 

 I/O 的配置和使用 
       每一个端口都有一个输出数据寄存器 (ODR),一个引脚输入寄存器 (IDR) 和一个数据方向寄存器 (DDR) 总是同相关的。 
       控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/ 输出进行配置。任何一个I/O 引脚可以通过对DDR,ODR,CR1 和CR2寄存器的相应位进行编程来配置。 
      寄存器中的位n对应于口的引脚 n 。 
      各种不同配置总结。  
      IO 口配置表

STM8 通用输入输出口--GPIO - Wornyong - 智能物联,嵌入您我!

  

STM8 通用输入输出口--GPIO - Wornyong - 智能物联,嵌入您我!

 输入模式 
将DDRx  位清零就选择了输入模式。在该模式下读IDR 寄存器的位将返回对应I/O 引脚上的电平值。 
来了解关于模拟输入,外部中断,和施密特触发使能/ 关闭的细节。 
理论上可以通过软件配置得到四种不同的输入模式:悬浮不带中断输入,悬浮带中断输入,上拉不带中断输入和上拉带中断输入。但是在实际情况下不是所有的口都具有外部中断能力和上拉,用户应参考数据手册中关于每个引脚的实际硬件性能描述来了解更多细节。

输出模式 
将DDRx  位置1就选择了输出模式。在该模式下向ODR寄存器的位写入数据将会通过锁存器输出对应数字值到I/O 口。读IDR 的位将会返回相应的I/O 引脚电平值。通过软件配置CR1,CR2寄存器可以得到不同的输出模式:上拉输出,开漏输出。 
复位后的默认配置 
复位之后,所有的引脚都是悬浮输入模式。

没有使用的引脚 
没有使用的I/O 引脚必须连接到一个固定的电平值。或者是上拉或者是下拉。

低功耗模式 
低功耗模式对GPIO口的影响

STM8 通用输入输出口--GPIO - Wornyong - 智能物联,嵌入您我!

输入模式的详述 
复用功能输入 
部分I/O 口可以被用作复用功能输入。例如:可以被用来作为输入到定时器的输入捕捉口。复用的输入功能是不会自动选择的,用户可以通过写相应的外设寄存器的控制位来选择复用功能。

对于复用功能的输入,用户必须通过配置DDR和CR1 寄存器设置将对应的I/O 口设为为悬浮或是上拉输入。

 中断功能 
用户可以在I/O 引脚为输入模式时通过设置Px_CR2 寄存器的相应位来配置某个I/O 作为外部输入中断模式。在该配置下,I/O 引脚上的一个信号沿或是低电平会产生一个中断请求。
在EXTI_CR[2:1]寄存器中对于每一个中断向量都可以独立编程为上升沿或下降沿触发。 
外部中断只有在对应I/O 口被设置为输入模式下才有效。 
中断屏蔽 
可以通过对Px_CR2 寄存器的相应位进行编程来单独使能/ 关闭外部中断功能。复位后外部中断是关闭的。

模拟通道 
DC外设可以选择某些I/O 口作为模拟输入通道。如下面一节描述,当使用模拟通道的时候,DC_TDR 寄存器的输入施密特触发器必须被关闭。 
推荐的和不推荐的模拟输入配置

STM8 通用输入输出口--GPIO - Wornyong - 智能物联,嵌入您我!

 施密特触发器 
部分I/O 口包括一个内嵌的输入施密特触发器。可以通过ADC_TDR 施密特触发器禁止寄存器来使能/ 禁止施密特触发器。

 输出模式详述 
复用功能的输出 
复用输出功能为外设输出到外部或者I/O 引脚提供一个方便的操作方法。当复用功能使能时,复用功能模块接管了输出锁存寄存器(Px_ODR) 并强制Px_ODR 相应的位为1。 
复用输出功能可以是上拉或者开漏输出,取决于外设本身和控制寄存器1(Px_CR1) ,输出摆率取决于控制寄存器2 (Px_CR2)的值。 
例如: 
考虑到要达到最佳性能,SPI输出引脚必须设置为上拉,快速摆率。UART_Tx可以被配置为或者是上拉或者是开漏带外部上拉来实现多从机的配置。

 摆率控制 
输出摆率可以使用CR2 的相应位通过软件控制。置位CR相应位选择为10MHz的输出频率。该功能既可以用在开漏也可以用在带上拉的输出模式I/O 口,输出类型为O3 或者O4。请参考引脚描述表来了解每个口的输出类型。

关键字:STM8  输入输出口  GPIO 引用地址:STM8 通用输入输出口--GPIO

上一篇:STM8 自动唤醒AWU
下一篇:STM8 中断控制器ITC

推荐阅读最新更新时间:2024-03-16 15:04

STM8的线中断和端口中断
STM8L的中断,有两种模式,分别为Pin模式和Port模式,也就是所谓线中断和端口中断。 简而言之,线中断是指所有寄存器组的同一管脚Pin的中断都使用同一中断号,如, void KEY2Init() { PB_DDR_bit.DDR2 = 0; //GPB- PIN2 设置端口PB- 2的输入输出方向寄存器为输入方向 PB_CR1_bit.C12 = 1; //GPB- PIN2 带上拉电阻输入 PB_CR2_bit.C22 = 1; //GPB- PIN2 使能外部中断 // 使用的是第二个端口作为中断 所以选择P2Is EXTI_CR1_bit.P2IS = 2;
[单片机]
STM8 通用异步收发器(UART)
STM8 UART介绍 STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。STM8的UART提供宽范围的波特率选择,并且支持多处理器讯。UART也支持LIN(局部互连网)协议版本1.3,2.0和2.1以及在主模式下的J2602。UART1和UART2具有以下扩展特征(见表47) UART2和UART3支持LIN从模式。 UART1和UART2支持同步单向通信,也支持智能卡协议和IrDA(红外数据组织)SIR ENDEC规范。 UART1支持半双工单线通讯。 关于每个STM8微控制器型号中的可用UART配
[单片机]
<font color='red'>STM8</font> 通用异步收发器(UART)
STM8学习笔记---ADC多通道采样
STM8S003单片机ADC采样通道总共有5个,从AIN2---AIN6,多通道采样时需要将ADC转换设置为单次转换模式,每次切换采样通道后,需要重新初始化 ADC,采样结果在中断中读取。 IO口初始化代码 //AD通道引脚初始化 void ADC_GPIO_Init( void ) { PD_DDR &= ~( 1 2 ); //PD2 设置为输入 AIN3 PD_CR1 &= ~( 1 2 ); //PD2 设置为悬空输入 PD_DDR &= ~( 1 3 ); //PD3 设置为输入 AIN4 PD_CR1 &= ~( 1 3 );
[单片机]
<font color='red'>STM8</font>学习笔记---ADC多通道采样
[单片机框架][bsp层][cx32l003][bsp_gpio] GPIO配置和使用
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。51单片机芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能。过 GPIO 最简单的应用还属点亮 LED灯了,只需通过软件控制 GPIO 输出高低电平即可。当然GPIO还可以作为输入控制,比如在引脚上接入一个按键,通过电平的高低判断按键是否按下。 通用输入/输出口用于芯片和外部进行数据传输,共有 4 组 GPIO:GPIOA、GPIOB、GPIOC 和GPIOD。4 组 GPIO 的功能基本相同,可以通过配置将 GPIO 映射到对应芯片引脚,每个引脚可以被独立配置为
[单片机]
STM32 GPIO的外部中断设计
一、前言 在之前针对 STM32 的G PI O相关API函数及配置使用进行了详细的介绍,GPIO作为输入引脚时,调用相关读 信号 引脚函数接口就可以在程序的循环中,轮询的对输入信号进行读取 检测 操作,除了轮询的方式访问输入引脚,还可以通过另外一种叫做外部中断的方式来对引脚的输入信号进行检测,本篇首先介绍下EX TI 的结构,接着介绍外部中断的相关概念, 对STM32的IO外部中断EXTI有个初步的了解,在此基础上重点围绕IO外部中断EXTI的使用展开分析。 图1 外部中断设计 二、EXTI结构 EXTI(Ex te rnal interrupt/event controller)—外部中断/事件控制器,管理了控制器的
[单片机]
STM32 <font color='red'>GPIO</font>的外部中断设计
8位MCU将消失?你想错了
8位微控制器能否再经历一场复兴? 随着ARM处理器架构的兴起和32位微控制器的广泛应用,人们很容易假设,随着32位处理器芯片的价格和功耗的下降,采用8位MCU进行设计已经变得越来越没有竞争力了。 但现实情况并非如此。Microchip、Atmel和意法半导体等芯片供应商比以往任何时候更致力于完善和升级自己的8位微控制器,并正为其添加高性能外设和扩展开发工具。 微芯科技(Microchip)的Lucio Di Jasio提到:“我们不会将8位微控制器做低价化处理,相反,我们正在加大对8位PIC系列单片机的投资,以把它应用在新的更高性能的应用中”。 对于高端电机控制是否真的需要一个32位ARM微控制器或一个基于M
[单片机]
STM8学习之nRF24L01
简介:nRF24L01是收发双方都要编程的,同时调试一旦出错,不易判断哪方出错,所以可以采用分开调试。 收发过程: 发送 - 等待应答 - (自动重发)- 产生中断 接收 - 等待应答 - 产生中断 取消等待应答便可以实现单独调试发送方了,等发送方调试成功再调接收方。 SPI模拟函数: u8 SPI_RW(u8 byte) { u8 i; for(i=0;i 8;i++) { if((byte & 0x80) == 0) //数据从最高位一位一位地输出到nRF24L01的MOSI { MOSI = 0; } else { MOSI = 1; } byte = (byte
[单片机]
什么是GPIO? STM32中关于GPIO口的介绍
一、什么是GPIO? GPIO的英文全称是General-Purpose IO ports,也就是通用输入输出口。 在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状体就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。 一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是
[单片机]
什么是<font color='red'>GPIO</font>? STM32中关于<font color='red'>GPIO</font>口的介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved