串行通信的基本原理以及相关的串口配置

​串行通信的基本原理

什么是串口:串行通信接口:按位发送和接收的接口。如:RS-232/422/485

LSB是最低有效位

MSB是最高有效位

校验位:可选占1个位长,也可以没有该为

停止位:必须有,可选占0.5、1、1.5、2个位长,保持逻辑1电平

通信接口:

UART:通用异步收发器(异步通信、发送数据、接收数据)【无同步时钟】

USART:通用同步异步收发器(同步通信、异步通信、发送数据、接收数据),我们通常也是使用它的异步通信

USART/UART都可以与外部设备进行全双工异步通信

大容量的STM32F10X系列芯片,包含3个USART和2个UART

通过串口接收或者发送一个字符

数据寄存器DR,要让串口发送数据,就要往DR这个寄存器写入操作。

发送数据寄存器TDR,接收数据寄存器RDR

数据位为八位,第九位为奇偶校验位,双方约定好波特率

串口配置一般步骤:

常用的串口相关的寄存器

  • USART_SR状态寄存器(串口通信的状态位)
  • USART_DR数据寄存器(一般是位0~8)
  • USART_BRR波特率寄存器

  1. 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
  2. 串口复位:USART_Delnit();(这一步不是必须的)
  3. GPIO端口模式设置:GPIO_Init();模式设备为GPIO_Mode_AF_PP
  4. 串口参数初始化:USART_Init();
  5. 开启中断并且初始化NVIC(如果需要开启中断才打开这个步骤)

NVIC_Init();

USART_ITConfig();

  1. 使能串口:USART_Cmd();
  2. 编写中断处理函数:USARTx_IRQHandler();
  3. 串口数据收发;

void USART_SendData();//发送数据到串口,DR

uint16_t USART_Receivedata();//接受数据,从DR读取接受到的数据

  1. 串口传输状态获取;

FlagStatus USART_GetFlagStatus(USART_TypeDef*USARTx,uint16_t USART_FLAG);

void USART_ClearITPendingBit(USART_TypeDef*USARTx,uint16_t USART_IT);

以上是学习总结,如有问题,请多指教~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值