简述串口通信原理 stm32串口发送数据 如何通过串口发送数据

串口通信经常作为开发调试的工具,所以先介绍下串口通信。
串口通讯(serial communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。目前stm32一般只使用 rxd、txd 以及 gnd 三条信号线,直接传输数据信号。
stm32的串口通信外设有usart和uart。usart是universal synchronous asynchronous receiver and transmitter的缩写,即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。uart(universal asynchronous receiver and transmitter)在usart基础上裁减了同步通信功能,只有异步通信。
接口通过三个引脚从外部连接到其它设备(如以下usart框图所示)。任何 usart 双向通信均需要至少两个引脚:接收数据输入引脚 (rx) 和发送数据引脚输出 (tx)。
rx :接收数据输入引脚就是串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。
tx :发送数据输出引脚。如果关闭发送器,该输出引脚模式由其 i/o 端口配置决定。如果使能了发送器但没有待发送的数据,则 tx 引脚处于高电平。在单线和智能卡模式下,该 i/o用于发送和接收数据(usart 电平下,随后在 sw_rx 上接收数据)。
tx和rx分别用pa9和pa10。即使用usart1。
配置串口时,首先要对相应的gpio口进行初始化,初始化方式和led灯初始化类似。开启外设时钟,设置端口模式,端口输出类型、输出速度、上下拉、初始输入输出状态。由于usart属于可选功能项,所以两个端口工作模式都为复用功能模式。
gpio口配置好后,需要选用复用的功能usart1。
从图中可以知道usart1属于寄存器gpiox_afrh中的af7。需要在相应gpio口写入0111。
接着,设置usart1模式。
根据寄存器说明,配置为过采样16倍、字长8位、不校验,设置一个停止位,设置波特率,使能发送器和接收器。最后使能usart。
波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,单位为波特。比特率指单位时间内传输的比特数,单位 bit/s(bps)。对于 usart 波特率与比特率相等。波特率越大,传输速率越快。usart 的发送器和接收器使用相同的波特率。
波特率计算公式
其中,f plck 为 usart 时钟,over8 为 usart_cr1 寄存器的 over8位对应的值,usartdiv 是一个存放在波特率寄存器(usart_brr)的一个无符号定点数。其中 div_mantissa[11:0]位定义 usartdiv 的整数部分,div_fraction[3:0]位定义usartdiv 的小数部分,div_fraction[3]位只有在 over8 位为 0 时有效,否则必须清零。
可通过状态寄存器usart_sr的第七位判断发送数据寄存器是否为空,进行下一步的发送数据。
这个函数虽然可以发送数据,但只能单个发送,如果想发送一个字符串就要多次调用这个函数,所以把这个函数再进行封装。判断要输出的数是否为‘�’,如果是,则这个数发送结束,不再进行发送数据。这样就可以一次发送一个完整的字符串了。
主函数
usart源文件
usart头文件
最终编译后将程序烧入,stm32发送数据,电脑通过串口助手接收到数据,串口发送数据成功。这样以后就可以很方便的进行调试了。

区块链技术将改变传统社会治理方式
华为开发者大会2021 10月官网
无可替代的骁龙810,这究竟是为什么呢?
XR(扩展现实)市场可穿戴设备的整体计算解决方案
微雪电子Arduino开发板UNO PLUS简介
简述串口通信原理 stm32串口发送数据 如何通过串口发送数据
埃微i6HR智能手环值不值得购买
浅谈几种常见的数采设备通讯协议
2018苹果推出的三款iPhone新机配置与参数
Realme宣布将成为首批使用全新MediaTek Dimensity 1200芯片组推出旗舰手机的品牌之一
买OLED电视好还是液晶电视好
基于SystemView的GSM系统电路设计
2017年手机市场放缓还是增长?三星苹果和华为高管这么说
ADI公司和Xilinx联手实现JEDEC JESD204B互操作性
小鹏汽车P7“全场景语音功能”体验好,好在哪?
DnPort RJ45 封装的嵌入式串口服务器
详解接近传感芯片的工作原理及应用领域
电网互操作性现状和未来发展方向
Voury卓华新产品新科技成功面市,尽显产品本色!
采用CH375的USB接口芯片实现机车智能测温系统的设计