计算机系统应用教程网站

网站首页 > 技术文章 正文

stm32知识点-串口通讯 stm32串口工作原理

btikc 2024-10-12 11:44:36 技术文章 9 ℃ 0 评论

基本知识

串口的通讯类型

A.并行通讯:速度快,把1byte即8bit数据分到8个IO口进行输出,占用资源多

B.串行通讯:速度慢,占用资源少

传输方向分类

单工:

数据传输只支持数据在一个方向上传输

半双工:

允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;

全双工:

允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

串行通信的通讯类型

同步通信:带时钟同步信号传输。

-SPI,IIC通信接口

异步通信:不带时钟同步信号。(约定好波特率)

-UART(通用异步收发器),单总线

常见通讯接口

上图中提到的单总线应用包括常见的18b20温度传感器,dh11湿度传感器;IIC的话比较常见的就是Eeprom-24C02。

STM32的串口通讯接口

UART:通用异步收发器

USART:通用同步异步收发器

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

接线方式

上图的应用是以GND作为电平标准的参考点,以此一定要保证接地良好,否则会出现信号乱码的情况,并且此种传输方式距离有限,一般10米左右;若是对外输出用的是485通讯接口,它是差分信号,即使非共地情况也可以保证良好的数据传输效果且传输距离可以达1000米左右,根据实际情况,在通讯尾端并接上120欧姆的电阻,保证通讯质量。

UART通用异步通讯优点

通讯过程

串口寄存器部分介绍

状态清除操作

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();//清除中断状态标志位

波特率计算方法

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表