STM32--USART串口(2)串口外设

一、USART简介

可配置数据位:不需要校验就是8位,需要校验就选9位;

停止位:决定了帧的间隔;

STM32F103C8T6USART:USART1挂载在APB2总线上,USART2和USART3挂载在APB1总线上;

二、USART框图

TXE:发送寄存器空;RXNE:接收寄存器非空;

波特率发生器:来源为APB2或APB1时钟的分频;

三、USART基本结构

右边的四个寄存器实际在软件层面只有一个寄存器DR;

写入DR时,数据走上面进行发送,读取DR时,数据走下面进行接收;

四、数据帧

1、字长设置

2、配置停止位

五、波特率发生器

采样时为了防止噪声干扰会对同一个状态进行连续16次的采样,所以内部的采样时钟是16倍的波特率。所以输入时钟 / DIV就要等于16倍的波特率。

eg:9600 = 72M / ( 16 * DIV )

DIV : 000111010100 | 1100(468.75)

六、数据模式

HEX模式、十六进制模式、二进制模式:以原始数据形式显示;

文本模式、字符模式:以原始数据编码后的形式显示;

七、printf

1、printf

printf默认输出到屏幕,但32没有屏幕,所以需要重定向;

1、勾上Use McrolLIB

2、包含头文件

3、重写fputc

2、sprintf

sprintf可以指定打印位置,不涉及 重定向的东西

3、封装sprintf

相关推荐
youcans_4 分钟前
【FOC-MBD】(19)反 Park 坐标变换链路
stm32·单片机·嵌入式硬件·simulink·代码生成
国科安芯27 分钟前
面向商业航天的高可靠电机控制系统:从环境约束到芯片实现
单片机·嵌入式硬件·架构·risc-v·安全性测试
零一iTEM31 分钟前
PPM通信测试—FS-i6X+FS-A8S接收机+ESP32
单片机·嵌入式硬件·硬件工程·学习方法
Full Stack Developme44 分钟前
Java Simple Serial Connector 教程
java·stm32·单片机
youcans_1 小时前
【FOC-MBD】(20)矢量空间脉宽调制 (SVPWM)输出
stm32·单片机·嵌入式硬件·matlab·代码生成
点灯小铭1 小时前
基于单片机的全自动洗衣机控制器设计
单片机·嵌入式硬件
Flamingˢ1 小时前
ZYNQ + OV5640 + HDMI 视频系统调试记录:一次 RGB888 与 RGB565 引发的黑屏问题
arm开发·嵌入式硬件·fpga开发·vim·音视频
-Springer-2 小时前
STM32 学习 —— 个人学习笔记10-2(I2C 通信外设 & 硬件 I2C 读写 MPU6050)
笔记·stm32·学习
Strange_Head3 小时前
《Linux系统编程篇》Linux Socket 网络编程03(Linux 进程间通信(IPC))——基础篇
linux·网络·单片机
搁浅小泽3 小时前
大电流焊点补焊要求
单片机·嵌入式硬件·可靠性工程师