目录
- 一、stm32串口通信
-
- 1.1 串口通信协议
- 1.2 通信接口
- 1.3 串口通信分类
- 1.4 STM32串行通信的通信方式
- 1.5 STM32串行通信
- 1.6 功能引脚
- 1.7 数据寄存器
- 2.1 RS-232通信协议
- 2.2 RS-232串口简介
- 3.1 USB转串口CH341接线
- 二、STM32的USART串口通信
-
- 1.1 题目要求
- 1.2 器件准备
- 1.3 USB转TTL与C8T6相连
- 1.4 CH341驱动安装
- 三、用寄存器地址实现stm32串口通信
- 四、 用HAL库的方式
-
- 4.1 创建工程,配置参数
- 4.2 代码编写
- 4.3 烧录编译
- 五、总结
- 六、参考链接
一、stm32串口通信
1.1 串口通信协议
- 串口是显控设备与信 处理板之间通信的主要接口,也是显控设备与其他设备、设备与设备之间的协议数据帧通信传输的重要接口。 [2] 串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串口通信协议是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。 [2] 在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
1.2 通信接口
,n表示低电平有效。如果使能 RTS流控制,当 USART 接收器准备好接收新数据时就会将 nRTS变成低电平;当接收寄存器已满时, nRTS将被设置为高电平。该引脚只适用于硬件流控制。
nCTS: 清除以发送(Clear To Send),n 表示低电平有效。如果使能 CTS流控制,发送 器在发送下一帧数据之前会检测 nCTS引脚,如果为低电平,表示可以发送数据,如果为 高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。 SCLK:发送器时钟输出引脚。这个引脚仅适用于同步模式。
一般使用 8位数据字长。
USART_DR 包含了已发送的数据或者接收到的数据。
单片机的电平标准(TTL电平):+5V表示1,0V表示0;
Rs232的电平标准:+15/+13 V表示0,-15/-13表示1。
RS-232通讯协议标准串口的设备间通讯结构图如下:
然后打开串口终端,点击“手动发送”或者“自动发送”,如果在接收区可以接收到数据,说明USB转串口模块工作正常,否则需要检查接线是否正确、电路板元器件是否损坏。
USB转串口电路板与单片机的接线图,VCC接线是为了单片机供电,USB转串口的RXD引脚与单片机的TXD引脚相连,USB转串口的TXD引脚与单片机的RXD引脚相连,两者的GND引脚直接相连。
1.4 CH341驱动安装
下载链接:
CH340/CH341
Windows 驱动链接:https://www.wch.cn/download/CH341SER_EXE.html/
打开 页,点击下载
在下载的SYSTEM组下,只需修改usart.c和编写写test.c文件即可。
-
编译结果
-
用XCOM串口观察助手
-
打开XCOM串口助手,弹出界面点击打开串口,即可以接收到C8T6发送的数据Hello Windows!
选择stm32F103C8开发板,开始工程
勾选Enabled:
生成项目:
- 在main.c中定义一个延时函数,来使设置发送的时间间隔:
打开XCOM串口观察小助手
五、总结
keil没有成功build的话,可能是代码本身问题,也可使魔法棒里的一些设置问题。烧录没成功可能是实验操作时的一些没有注意到的小问题,一步一步的找出问题,实践出真知,都能解决的。
六、参考链接
https://blog.csdn.net/qq_43328313/article/details/106439088
https://blog.csdn.net/qq_46467126/article/details/120841504pm=1001.2014.3001.5502声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!