GPIO与UART

本文章立足于浅层应用的方法而非深入原理的理解,这两者满足的是不同的需求,但是之后可能会补足原理的学习。

GPIO (General Purpose Input/Output)通用输入输出端口的简称,GPIO 端口(元器件上的一个引脚)可以输出高低电平或者读取外部输入电平,以此实现与外部的通讯。
(实际上,操作 GPIO 端口的函数修改了 GPIO 的硬件寄存器数据,硬件的状态根据硬件寄存器数据的改变而改变)

通常来说,GPIO 有三种状态:高电平、低电平、高阻态。在 STM32 中,首先需要对特定的引脚设置为输入/输出模式,还可以在 GPIO Pull-up/Pull-down 中预先设置特定的状态。(Pull-up: 将不确定的信号通过一个电阻设置成高电平,Pull-down: 将不确定的信号通过一个电阻设置成低电平)

函数操作(HAL库):

/*
#define GPIO_PIN_RESET 0 // 低电平
#define GPIO_PIN_SET 1   // 高电平
*/
typedef enum
{
   
  GPIO_PIN_RESET = 0, // 低电平
  GPIO_PIN_SET = 1    // 高电平
}GPIO_PinState;       // 使用枚举类

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx,
uint16_t GPIO_Pin, GPIO_PinState PinState); // 写入电平
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx,
uint16_t GPIO_Pin)                          // 读取电平
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx,
uint16_t GPIO_Pin);                         // 对电平取反
/*
GPIOx 为 GPIOA/B/C/G 等之一,是 STM32 中对于 GPIO 端口的分组
GPIO_Pin 为 GPIO 的端口,具体见下文
GPIO_PinState 为枚举类的高电平/低电平之一
*/

一些细节:
一个 GPIO_Pin 对应着一个位(0或1),将其他部分补全以后就得到一个uint16_t(无符号 16 位,占用两字节,范围 0-65535 ,相当于short),在定义中

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GPIO(General Purpose Input/Output)和UART(Universal Asynchronous Receiver Transmitter)是两种常见的嵌入式系统中的接口。它们各自具有不同的特点和用途。 GPIO是通用输入输出接口,可以提供多个数字输入输出通道。通过GPIO控制,可以读取和输出数字信号。它可以作为各种接口的扩展,如LED灯的控制、开关的输入,以及其他数字信号的控制。GPIO在系统中的灵活性较高,能够适应各种应用场景的需求。 UART是一种串行通信接口,常用于与其他设备进行数据交换。UART可以实现两个设备之间的数据传输,实现设备之间的通信。它通过一组引脚(TXD和RXD)传输二进制数据。UART接口比较简单,但在数据传输率方面有一定限制。 综上所述,GPIOUART是两种不同的接口,适用于不同的场合。GPIO通常用于数字输入输出控制,而UART则用于设备之间的数据传输。需要根据具体应用场合选择适合的接口。 ### 回答2: GPIOUART都是数字电路上常用的接口标准,它们被广泛应用于嵌入式系统和微控制器中。GPIO(General Purpose Input/Output)代表通用输入/输出口,它是一种通用的数字输入输出接口,可用于将数据传输到外部设备或读取来自外部设备的数据。GPIO的使用范围很广,包括控制灯光、电机、传感器等设备的状态,以及读取按键或开关等设备的状态信息。 而UART(Universal Asynchronous Receiver/Transmitter)则是一种串行通信接口,可用于将数据从一个设备传输到另一个设备,它使用一个线路(常称为RX/TX线)用于发送和接收数据,且数据是按位传输的。UART支持异步通信模式和同步通信模式,而且通常用于串口通信,因此UART适合用于连接计算机、调试工具、传感器等外部设备。 GPIOUART的主要区别在于它们的应用场景和通信方式。GPIO主要用于控制和传输数字信号,而UART则更适合处理串行数据信号。另外,GPIO通常用于短距离信号传输,而UART则可以处理更长距离的信号传输。在实践中,GPIOUART通常会同时使用,以满足不同场景下的通信需求。 ### 回答3: GPIOUART都是用于数字信号传输的接口,但有一些不同之处。 GPIO,全称为通用输入/输出(General Purpose Input/Output),是一种数字接口,可通过将数字电信号输入或输出到GPIO引脚来实现。GPIO通常用于连接各种外围设备,如LED、传感器、输出器等。GPIO可以被软件程序中的高、低或输入状态控制,并且可以读取此外设的状态。 UART,全称为通用异步收发器(Universal Asynchronous Receiver/Transmitter),是一种同步串行通信接口,通常用于两个设备之间进行数据传输。UART使用异步传输机制,因此不需要时钟信号,而是使用停止位和起始位来同步数据传输。UART通常用于连接诸如蓝牙模块、GPS和WiFi等设备。 总之,GPIO主要用于控制外围设备的数字输入和输出,而UART主要用于两个设备之间的数字通信传输。它们分别有不同的应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值