【学习记录】STM32 串口通信总结

串口通信基本原理

通信接口背景知识

并行通信
-传输原理:数据各个位同时传输。
-优点:速度快 
-缺点:占用引脚资源多
串行通信
-传输原理:数据按位顺序传输。
优点:占用引脚资源少-缺
点:速度相对较慢
串行通信:
按照数据传送方向,分为:
单工:(a)
        数据传输只支持数据在一个方向上传输
半双工:(b)
        允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信
全双工:(c)
        允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
串行通信的通信方式:
同步通信:带时钟同步信号传输。
-SPI,IIC通信接口
异步通信:不带时钟同步信号。
-UART(通用异步收发器),单总线
(双方事先必须约定好波特率(传输速度))

 

常见的串行通信接口:

 STM32串口通信基础

STM32的串口通信接口:

UART:通用异步收发器

USART:通用异步同步收发器

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

 

UART异步通信方式引脚连接方法:

RXD:数据输入引脚。数据接受。

TXD:数据发送引脚。数据发送。

串口号

RXD

TXD

1

PA10

PA9

2

PA3

PA2

3

PB11

PB10

4

PC11

PC10

5

PD2

PC12

 UART异步通信方式特点

全双工异步通信。

分数波特率发生器系统,提供精确的波特率。

  -发送和接受共用的可编程波特率,最高可达4.5Mbits/s

可编程的数据字长度(8位或者9位);

可配置的停止位(支持1或者2位停止位);

可配置的使用DMA多缓冲器通信。

单独的发送器和接收器使能位。

检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志

多个带标志的中断源。触发中断。

其他:校验控制,四个错误检测标志。

STM32串口异步通信需要定义的参数

① 起始位
② 数据位(8位或者9位)
③ 奇偶校验位(第9位)——提高数据传输的准确率
④ 停止位(1,15,2位)
⑤ 波特率设置
STM32 USART框图

 



STM32串口寄存器库函数配置方法

常用的串口相关寄存器
USART_SR状态寄存器
USART_DR数据寄存器
USART_BRR波特率寄存器
串口操作相关库函数(省略入口参数):
void USART_Init (); // 串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能
void USART_Cmd ();// 使能串口
void USART_ITConfig ();// 使能相关中断
void USART_SendData ();// 发送数据到串口, DR
uint16_t USART_ReceiveData ();// 接受数据,从 DR 读取接受到的数据
FlagStatus USART_GetFlagStatus ();// 获取状态标志位
void USART_ClearFlag ();// 清除状态标志位
ITStatus USART_GetITStatus ();// 获取中断状态标志位
void USART_ClearITPendingBit ();// 清除中断状态标志位
串口配置的一般步骤
串口时钟使能, GPIO 时钟使能 : RCC_APB2PeriphClockCmd();
串口复位 : USART_DeInit (); 这一步不是必须的
GPIO 端口模式设置 : GPIO_Init (); 模式设置为 GPIO_Mode_AF_PP(具体需要查表)
串口参数初始化 USART_Init ();
开启中断并且初始化 NVIC (如果需要开启中断才需要这个步
NVIC_Init ();
USART_ITConfig ();
⑥使能串口 : USART_Cmd ();
⑦编写中断处理函数 USARTx_IRQHandler ()
⑧串口数据收发:
void USART_SendData ();// 发送数据到串口, DR
uint16_t USART_ReceiveData ();// 接受数据,从 DR 读取接受到的数据
⑨串口传输状态获取:
FlagStatus USART_GetFlagStatus ( USART_TypeDef * USARTx , uint16_t USART_FLAG);
void USART_ClearITPendingBit ( USART_TypeDef * USARTx , uint16_t USART_IT);
实战训练:
main.c:
这里用串口调试助手可以知道代码运行成功了!

参考文献:

【正点原子】精英STM32F103开发板资料

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值