一、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可以指定打印位置,不涉及 重定向的东西