简介
单片机的GPIO引脚由于内部电路不同具有不同的模式,一般分为输入模式和输出模式。输入模式有悬浮输入、上拉输入。输出模式有推挽输出、开漏输出。
如果GPIO引脚作为模拟信号输入设置为悬浮输入,作为I2C数据通信设置为开漏输出模式,作为方波输出设置为推挽输出模式。
原理
悬浮输入
悬浮输入模式下,电路的引脚电平状态不确定,它跟随外部信号的变化而变化,适用于模拟信号输入采样。
上拉输入
上拉的作用就是将引脚的不确定电平通过一个上拉电阻确定为高电平状态,同理,下拉作用则是通过一个下拉电阻将引脚电平拉到低电平。一般来说上拉作用强弱与上拉电阻阻值和上拉电阻端电源电压有关,电压一定时,阻值越小上拉作用越强。同理下拉时阻值越小下拉作用越强。
推挽输出
推挽输出模式下,内部电路由两个三极管或mos管轮流导通输出高低电平,即在每一时刻只有一个管子处于导通状态。如图所示PMOS管导通,NMOS管关闭,输出高电平,NMOS管导通,PMOS管关闭,输出低电平。推挽输出的特点是提高负载驱动能力,提高开关速度。
开漏输出
开漏输出是MOS漏极处于开路状态,无法输出高电平,如果需要得到确定的高电平状态需要外接上拉电阻,适合于电流型的驱动,吸收电流能力强。
寄存器
STIM8单片机GPIO配置表
数据方向寄存器 Px_DDR
控制寄存器1 Px_CR1
输入/输出模式设置
控制寄存器2 Px_CR2
用于输入模式时中断使能,输出模式时输出速率设置
输入数据寄存器 Px_IDR
输出数据寄存器 Px_ODR
流程
关键字:STM8S GPIO 输入输出
引用地址:
STM8S专题之GPIO输入输出
推荐阅读最新更新时间:2024-11-18 18:16
stm8s开发(一) 使用IAR新建工程
新建工程是第一步! a)创建一个 Workspace 首先,创建一个workspace。选择菜单File New Workspace b)创建一个 Project 1)创建一个新的工程,选择 Project Create New Project,创建新工程的对话框,如下图所示: 2) Tool chain 默认是 STM8 Series。 无需再选择。 3)在 Project templates 中选择“Empty project” 4)弹出 Save As 对话框,选择 project 保存的路径,并输入 project 的名字 5)在添加文件到工程中之前,先保存 worksp
[单片机]
s3c2410_gpio_cfgpin()函数
函数原型:s3c2410_gpio_cfgpin(unsigned int pin,unsigned int function) 位置:/linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c 函数内容: void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) { void __iomem *base = S3C24XX_GPIO_BASE(pin); unsigned long mask; unsigned long con; unsigned long flags; if (pin S3C2410_GPIO_BANK
[单片机]
使用STM8S自带BootLoader_1
本文将详细记载怎么使用STM8S自带BootLoader实现程序更新。 准备工作: 1. ST支持文档 UM0560(说明BootLoader怎么用) 2. ST官方下载软件 STMFlashLoader Demo.exe 3. IAR Embedded Workbench 、ST Visual Programmer 4. 2块STM8S105K6,用来实现更新操作。 实践操作: 1. 使用STVP - OPTION BYTE - ROP - Read Out Protection OFF STVP - OPTION BYTE - BOOTLOADER ENABLE - BootLoader Enable 本
[单片机]
基于单片机STM32 GPIO 基本简单操作函数教程
STM32库函数太多,而且不能识别大小写,经常记错,GPIO简单记忆。---第一步--模式配置void GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENA STM32库函数太多,而且不能识别大小写,经常记错,GPIO简单记忆。 ---第一步--模式配置 void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE
[单片机]
STM32 基础系列教程 2 - GPIO 按键输入
前言 学习stm32 GPIO 的使用,实现简单的按键输入功能,用按键的高低来控制LED的亮灭! 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。将PA0引脚设置成输入引脚,程序得到PA0引脚的(按键操作)输入状态,并根据其输入电平的高低来控制PC13输出,来控制LED,实现按一次LED亮,再按一下,LED灭的功能。 本示例所用的最小系统板原理图: 新建STM32 CUBEMX 工程, 双击桌面STM32CubeMX工具 在CubeMX中菜单中点 File à New
[单片机]
LPC2378上用ST16C2550扩展串口使用GPIO中断
LPC2378外部中断管脚P2.10~P2.13可用为外部中断,也可以用为GPIO中断。 在LPC2378上用ST16C2550芯片扩展串口时,两种中断都可以用,但看LPC2378文档时,外部中断那块讲的比较晦涩,GPIO中断倒是很明白,我就用GPIO中断去操作,非常好,中断收发通信成功。代码如下,供大家参考: /*********************中断处理函数************************/ void ST16_Handler (void) __irq { BYTE status; IENABLE; /* handles nested interrupt */
[单片机]
MCS-51单片机输入输出端口(I/O口)
单片机芯片内还有一项主要内容就是并行I/O口。MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。 在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。
[单片机]
STM8S学习笔记之二(STM8 GPIO输出功能)
拿到STM8板子之后,在IAR官方下载IAR for STM8s 30天试用版本,在电脑上安装后发现在安装IAR时,STLink的驱动也会全部自动的安装上去,方便啊。。因为之前我的AVR都是在IAR上开发的,所有对这个软件并不陌生,打开软件新建工程,Debug模式下,设置使用STLink仿真,将空白文件成功烧写进去了,看来,开饭环境搭建还是很简单的。。 接下来,进入主题,STM8S的IO口控制,这是学习一个单片机最最最基础的东西了。 STM8单片机IO与AVR差不多,可以配置为输入输出,同时还可以带上拉电阻下拉电阻。还有就是跟STM32几乎相同,某些IO口可以配置成模拟输入,模拟输入,复用端口,也可以配置成中
[单片机]