stm8s gpio端口配置

发布者:工号待定最新更新时间:2020-08-08 来源: elecfans关键字:stm8s  gpio  端口配置 手机看文章 扫描二维码
随时随地手机看文章

  简介

  STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。


  复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态。


   STM8S的GPIO主要功能

  ● 端口的各个位可以被单独配置

  ● 可选择的输入模式:浮动输入和带上拉输入

  ● 可选择的输出模式:推挽式输出和开漏输出

  ● 数据输入和输出采用独立的寄存器

  ● 外部中断可以单独使能和关闭

  ● 输出摆率控制用以减少EMC噪声

  ● 片上外设的I/O功能复用

  ● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗

  ● 在数据输出锁存时支持读-修改-写

  ● 输入兼容 5V电压

  ● I/O口工作电压范围为1.6 V 到V DDIOmax


  每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态。

stm8s gpio端口配置

  GPIO的每个端口由输出数据寄存器 (ODR),引脚输入寄存器 (IDR),数据方向寄存器(DDR)控制,控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出模式配置。


  模式配置图为:

stm8s gpio端口配置

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


  复位后引脚状态为悬空输入。注意!!没有使用的I/O口要连接到固定的电平值,上拉或下拉。


  另有三个寄存器 端口 x 输出数据寄存器 (Px_ODR), 端口 x 输入寄存器 (Px_IDR)(可读), 端口 x 数据方向 (Px_DDR)[0输入:1输出]。均为8位寄存器。


  还有两个配置寄存器 端口 x 控制寄存器 1 (Px_CR1), 端口 x 控制寄存器 2 (Px_CR2)。


  I/O的配置和使用

  每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)总是同相关的。


  控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。

  寄存器中的位n对应于口的引脚n。各种不同配置总结如表18。

  stm8s gpio端口配置

  (表18:IO口配置表)

  注意:连接VDD的二极管在实际开漏极状态引脚是无效的,在引脚和VOL之间的局部保护设备重要性是有效的。


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

  输入模式

  将DDRx位清零就选择了输入模式。在该模式下读IDR寄存器的位将返回对应I/O引脚上的电平值。

  如表18所示,理论上STM8可以通过软件配置得到四种不同的输入模式:悬浮不带中断输入,悬浮带中断输入,上拉不带中断输入和上拉带中断输入。但是在实际情况下不是所有的口都具有外部中断能力和上拉,用户应参考数据手册中关于每个引脚的实际硬件性能描述来了解更多细节。

  输出模式

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


  低功耗模式

  表19低功耗模式对STM8S的GPIO口的影响

stm8s gpio端口配置

  注意:如果PA1/PA2被用来连接外部谐振器,为了确保在HALT模式下有最低功耗必须配置PA1和PA2为带上拉输入。

关键字:stm8s  gpio  端口配置 引用地址:stm8s gpio端口配置

上一篇:STM8L pk MSP430 低功耗优势对比
下一篇:stm8s定时器tim4使用方法解析

推荐阅读最新更新时间:2024-11-13 07:33

嵌入式驱动学习之GPIO驱动
开发环境 主机开发环境:ubuntu12.04 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 开发步骤 1、硬件分析 在天嵌科技提供的开发板中 4 个 LED 灯(TQ2440)分别使用了 S3C2440芯片的:GPB5、GPB6、GPB7 和 GPB8,下面列出来对应的原理图: 根据上图可以知道,当 CPU 的 GPB5 到 8 是低电平时,LED 灯亮;当为高电平时 LED 灯灭。只需要在驱动中实现对 GPB 口电平的控制就可以实现对灯进行开关操作。 2、编写LED驱动 以下为驱动源码: #include linux/mis
[单片机]
嵌入式驱动学习之<font color='red'>GPIO</font>驱动
STM32 GPIO引脚模式配置
STM32单片机中,GPIO引脚可以配置为较多的模式,本文将对此方面进行介绍。 一、输入/输出模式 二、输出模式 GPIO输出模式下,几种速度的区别: (1). GPIO 引脚速度: GPIO引脚速度主要有三种:2MHz、10MHz、 50MHz。 引脚速度又称输出驱动电路的响应速度, GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。带宽速度高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声。 (2). GPIO的翻转速度 输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度.手册上指出GPIO最大翻转速度可达18M
[单片机]
采用STM8S内部时钟产生PWM(TIM2)
  1 说明   采用STM8S内部时钟(HSI);   PWM模式2;   占空比为50%,频率为2Hz(方便测试LED灯);   PD2口外接LED灯,PD2口输出PWM波;   系统时钟初始化很重要:CLK_CKDIVR |= 0x08;   2 代码
[单片机]
采用<font color='red'>STM8S</font>内部时钟产生PWM(TIM2)
STM32F2 GPIO 配置问题
在编写GPIO模拟i2c时,下面两个初始化有不同 第一种方法: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOC, &GPIO_InitStructure); G
[单片机]
STM32F407的GPIO操作
/* #include stm32f4_discovery.h #include stm32f4xx_conf.h uint32_t Gb_TimingDelay; void Delay(uint32_t nTime); void main( ) { SysTick_Config(SystemCoreClock / 1000); //设置systemtick 一毫秒中断 RCC- AHB1ENR |= 0x00000008; //使能GPIOD 时钟 RCC- APB2ENR |= (1 14); //使能syscfg 时钟 GPIOD- MODER &= 0x00FFFFFF; //设置PD12,13,14,
[单片机]
这8种STM32中GPIO工作模式,你都知道吗?
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电
[单片机]
这8种STM32中<font color='red'>GPIO</font>工作模式,你都知道吗?
STM32单片机的GPIO输入、输出模式与配置方法
STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接口之一。本文将介绍 STM32 单片机的 GPIO 输入、输出模式与配置方法。 一、 STM32 单片机 GPIO 简介 GPIO ,全称 General Purpose Input/Output,即通用输入输出口。它是一个通用的数字电平接口,可以极大地扩展单片机的应用范围。GPIO 的主要功能就是承载数据,它是单片机与外部设备或硬件进行数据通讯的桥梁,也是微控制器的重要运行部件之一。 STM32 单片机的 GPIO 端口主要分为以下两种: 1
[单片机]
stm8sGPIO配置,点亮LED!PB4,PB5引脚LED点不亮
最近两天在做STM8S103的开发,调完硬件后,就开始编写软件了,第一步当然又是点亮LED灯了,结果很尴尬的死活点不亮!后来各种百度,认真查看数据手册,才发现一个很大的坑,由于粗心大意,没有看到,做个笔记,以为备忘。 1、流程 点亮LED,流程跟STM32基本一样: (1)配置GPIO(STM8S不需要专门配置每个引脚的时钟,最开始的时候配置系统时钟即可) (2)GPIO输出高低电平 废话不说,直接上代码: 2、上代码 //FUNCKTION: LED灯GPIO口初始化 //PARA : 无 //RETURN : 无 void LED_Config() { GPIO_Init(GPIOB, GPIO_PIN
[单片机]
<font color='red'>stm8s</font>: <font color='red'>GPIO</font><font color='red'>配置</font>,点亮LED!PB4,PB5引脚LED点不亮
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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