留胡子的钢笔
   STM32开发板学习记录(4)USART异步通信
实验四 USART异步通信
一、简介:
- 实验目的:学习串口的使用(接收与发送)
 - 硬件资源及引脚分配:串口1 (PA9/PA10连接在板载USB转串口芯片CH340上面)
 - 实验现象:STM32通过串口1和上位机对话,STM32在收到串口助手发过来的字符串(以回车换行结束)后,会返回给串口助手。
同时每隔一定时间,通过串口1输出一段信息,可以通过串口助手显示接收。 
二、工程搭建:
1.新建工程,选择芯片型号,配置时钟系统,配置LED的GPIO
2.配置USART1:
 
USART 是 "Universal Synchronous/Asynchronous Receiver/Transmitter" (通用同步/异步接收发射器)的缩写。它是一种串行通信接口,用于在MCU和其他外设之间传输数据。
USART有两种工作模式:A.同步模式:发送方和接收方共享一个时钟信号,确保数据的同步传输;B.异步模式:发送方和接收方通过起始位和停止位来同步数据传输,而不需要共享时钟信号。
这里选择异步模式。
USART通信中需要设置波特率、数据字长、校验位和停止位四个参数,一般采用默认即可,但要确保接收端设置与发送端一致。
3.外设中断配置:勾选USART1全局中断,并设置合适的中断优先级。
 
4. 生成工程源码。
三、编写代码:
1.串口printf重新定向:在usart.c中添加以下代码,通过printf的重定向 ,可以实现在打印printf内容时,通过串口将内容输出来,以方便调试。
 
2. 回调函数:其实没搞明白,只是单纯的复制、粘贴,以后再慢慢体会。
 
3. main.c:
 
四、实验视频:
(P.S.:使用串口助手时,因为忽略了某个细节,导致开始实验一直不成功:MCU发送的信息,串口助手能接收并显示;但串口助手发送到MCU的信息,没有任何反应。原来不知什么时候把“发送新行”这个选项没勾上,这也就导致MCU一直接收不到回车和换行键,一直以为数据没有传输完……)
版块: 
              开源项目
            
 2025/01/01 17:31  

全部评论