实验四 串口通信
一、实验目的
学习串口的使用(接收与发送)
二、硬件资源
KEY1(PD15) - LED1(PD12)
KEY2(PD14) - LED2(PD11)
KEY3(PD13) - LED3PD10)
串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
三、实验要求
本实验,STM32通过串口1和上位机通信,STM32在收到上位机发过来的字符串(以回车换行结束)后,直接返回给上位机。下载后,LED0闪烁,提示程序在运行,同时每隔一定时间,通过串口1输出一段信息(学生姓名)到电脑。
四、注意事项
1.电脑端串口调试助手波特率必须是115200.
2.请使用XCOM/SSCOM串口调试助手,其他串口助手可能控制DTR/RTS导致MCU复位/程序不运行
3.串口输入字符串以回车换行结束.
4.请用USB线连接在USB2UART上
五、实验原理
1.硬件电路
- 简单双向串口通信有两根通信线(发送端TX和接收端RX)
- TX与RX要交叉连接
- 当只需单向的数据传输时,可以只接一根通信线
- 当电平标准不一致时,需要加电平转换芯片
2.串口参数及时序
- 波特率:串口通信的速率
- 起始位:标志一个数据帧的开始,固定为低电平
- 数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
- 校验位:用于数据验证,根据数据位计算得来
- 停止位:用于数据帧间隔,固定为高电平
六、实验步骤
1.软件实现过程
(1)串口初始化
在这一步中,需要:
① 对该串口使用到的 IO 口进行初始化和使能相应的时钟树,并对端口进行复用映射;
② 中断配置 (主要是一个优先级);
③ 串口初始化配置(奇偶校验、收发配置等);
④ 串口使能;
串口1中断服务程序:
(2)编写发送与接收函数
如果要接收串口3的信息,这样调用:Receive = USART_ReceiveData(USART3);如果要通过串口3发送消息,则:USART_SendData(USART3,data)。
(3)主函数
2、串口收发功能测试