串口与普通IO口的区别

发布者:纸扇轻摇最新更新时间:2020-03-17 来源: eefocus关键字:串口  普通IO口  总线扩展器 手机看文章 扫描二维码
随时随地手机看文章

General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。 


每个GPIO端口可通过软件分别配置成输入或输出。Maxim的GPIO产品线包括8端口至28端口的GPIO,提供推挽式输出或漏极开路输出。提供微型3mm x 3mm QFN封装。


串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。


GPIO端口各种模式的区别 
  (1)GPIO_Mode_AIN 模拟输入

  (2)GPIO_Mode_IN_FLOATING 浮空输入

  (3)GPIO_Mode_IPD 下拉输入

  (4)GPIO_Mode_IPU 上拉输入

  (5)GPIO_Mode_Out_OD 开漏输出

  (6)GPIO_Mode_Out_PP 推挽输出

  (7)GPIO_Mode_AF_OD 复用开漏输出

  (8)GPIO_Mode_AF_PP 复用推挽输出


  1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声 控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。


  关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。

  比如:

  1.1.1 对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。


  1.1.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。


  1.1.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。


  1.2 GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。


  1.3 在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。


  1.4 所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。


  1.5 GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。


  2、推挽输出与开漏输出的区别

  推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极。 要得到高电平状态需要上拉电阻才行。 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。


  推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。


  要实现 线与 需要用OC(open collector)门电路。是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流


  当端口配置为输出时:

  开漏模式:输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。


  输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);此模式可以把端口作为双向IO使用。


  推挽模式:输出 0 时,N-MOS 导通,P-MOS 高阻 ,输出0。


  输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。


  简单来说开漏是0的时候接GND 1的时候浮空 推挽是0的时候接GND 1的时候接VCC


  3、在STM32中选用IO模式

  (1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1

  (2)带上拉输入_IPU——IO内部上拉电阻输入

  (3)带下拉输入_IPD—— IO内部下拉电阻输入

  (4)模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电

  (5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变 。可以读IO输入电平变化,实现C51的IO双向功能

  (6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的

  (7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)

  (8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)


  GPIO口和UART的区别 
  GPIO通用端口,UART串口,I2C,SPI 他们就是时序不同,CPU和外扩的芯片进行通信,领会它们的通信时序就OK,呵呵


  General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。 

UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置

  I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。


  SPI:高速同步串行口。是一种标准的四线同步双向串行总线。


  SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. 

关键字:串口  普通IO口  总线扩展器 引用地址:串口与普通IO口的区别

上一篇:STM8的程序更换不同芯片时要注意的地方
下一篇:STM8 I口模拟串口通信

推荐阅读最新更新时间:2024-11-10 13:06

STM32关于printf重定向到串口
------------------------------------------------------------------------------------------------------------------- 一、MDK中使用printf出问题的原因 如在MDK中使用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认输出设备是电脑显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数。 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下: #ifdef __GNUC__ #define
[单片机]
STM32关于printf重定向到<font color='red'>串口</font>
一个非常不错的串口程序
//PC读MCU指令结构:(中断方式,ASCII码表示) //帧: 帧头标志| 帧类型| 器件地址| 启始地址| 长度n| 效验和| 帧尾标志 //值: ’n’ ’y’ | ’ r’ | 0x01 | x | x | x | 0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其
[单片机]
STM32F1系列HAL库配置串口通信(2)——串口重定向以及log信息格式输出
之前我们提到了HAL库配置串口,但是由于我们还没有进行到中断,所以对于一些HAL库里有关串口的函数还是很难全部应用的,尽管如此,我们依然可以借助这两个函数胡作非为 加以利用。 1.串口发送数据: HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。 参数: *UART_HandleTypeDef huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是
[单片机]
STM32F1系列HAL库配置<font color='red'>串口</font>通信(2)——<font color='red'>串口</font>重定向以及log信息格式输出
STM32串口实现485双机通信的原理
RS485通信想必大家都知道,在学习RS232时,都会拿485(RS485下文就用485代替)和其作对比。485优缺点不说,网上有。 我用的是STM32库函数学的485通信,所以接下来就讲讲STM32串口实现485双机通信的原理: 485和232都是基于串口的通讯接口,在数据的收发操作上都是一致的。但是他两的通讯模式却大不相同~!232是全双工(例:A- B的同时B- A,瞬时同步)工作模式,而485是半双工(发时不能收,收时不能发)工作模式。在232通信中,主机在发送数据的同时可以收到从机发过来的数据;但在485通信中,收发要经过模式位的切换来进行,譬如,发送数据时,会把模式为置‘1’,表示为发送模式,此时不能接收;当接
[单片机]
STM32<font color='red'>串口</font>实现485双机通信的原理
8051串口使用
串口初始化配置也十分简单,如下图所示: 其中,TH1和TL1的设置是以11.0529MHZ设置的,具体还要因实际频率设置。 一般,使用串口模式1,而定时器使用模式2,即8位自动重载模式。 模式1波特率计算公式:2^SMOD/32 * T1溢出率,T1溢出率= fosc/ . 其中SMOD是PCON寄存器的BIT7,在串口方式1,2和3时,SMOD与波特率有关,SMOD=1时,波特率增加一倍,SMOD=0,则速度不变。 总结起来是,模式1波特率= 2^SOMD * fosc/ .
[单片机]
8051<font color='red'>串口</font>使用
S5PV210(TQ210)学习笔记——系统时钟和串口
TQ210的系统时钟配置和串口配置非常简单,本文从TQ210的系统时钟配置开始讨论。 TQ210的时钟配置跟2440/6410的时钟配置差不多,只是锁相环的个数略有不同,配置步骤是一样的。配置系统时钟,无非要经过以下几个步骤: (1)设置系统PLL锁定时间 (2)配置PLL (3)配置各模块分频系数 (4)切换到PLL时钟 简单的看着四步似乎没有头绪,但是看到手册中的 S5PV210时钟生成线路图 就可以理解了,现在截图如下: 上图中无非就三种模块,PLL、MUX和DIV,MUX控制时钟源选择,PLL负责生成PLL时钟,DIV负责分频。 为了系统稳定,在设计电路时我们一般不会使用太高频率的晶振(避免高频线间/层间干
[单片机]
S5PV210(TQ210)学习笔记——系统时钟和<font color='red'>串口</font>
51单片机串口通信Bad Apple视频播放源程序(LCD12864显示)
程序源自我的团队的一个参赛项目,项目文件是一个大工程有很多内容由其他队员编写我也不好直接发上来,所以我只好截取了其中我写的一个小模块放上来供大家分享。 这个程序主要可以实现“任意图片显示”以及“任意视频播放”两个功能,数据都通过串口进行传输(波特率4800,蓝牙或USB均可),当然发送的数据只能是处理好的图像取模数据。(LCD驱动是st7920) 上电后直接显示以下图像: 此时发送53 FF(十六进制发送)即可使用显示单张图片的预设,这时再通过串口发送取模数据就可以实时显示图像。 显示完图片后发送 01 0E即可跳回就绪状态(如果无法退出就定时循环发送01 0E)。 如果在就绪状态下发送53 53就可以进行视频流播放,此
[单片机]
51单片机<font color='red'>串口</font>通信Bad Apple视频播放源程序(LCD12864显示)
STM8L USART串口调试
最近学习开发STM8 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发一边学习,记录一下学习过程,如有错误的地方,敬请指正。 MCU:STM8L151K4 环境:IAR FOR STM8 因项目需求,需要调试USART功能,刚开始时候手里没有原理图,只有板子和datasheet,从datesheet上看到USART RX TX管脚为PC2 PC3. 于是便直接配置PC2 PC3,然后进行初始化,但是代码跑起来一直没有接收到MCU发送出去的数据,查看代码和datasheet,然后网上查找资料,发现USART有remappin功能,将PC3 PC2 映射到PA2 PA3上, 于是便询问硬件,确定板
[单片机]
STM8L USART<font color='red'>串口</font>调试
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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