🔬 实验11:串口——发送
📌 实验目标
- 掌握 USART 发送数据的配置方法
- 学会配置串口参数(波特率、数据位、停止位)
- 实现 printf 重定向到串口
- 使用串口调试助手查看数据
USART1 使用 PA9(TX) 和 PA10(RX),波特率 115200。通过重定向 printf 函数,可以方便地在串口调试助手中查看 MCU 的输出信息。
printf 重定向示例
#include "stm32f10x.h"
#include <stdio.h>
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t)ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
return ch;
}
int main(void)
{
USART1_Config(); // 见大课第5讲
printf("Hello STM32!\r\n");
printf("System Clock: %d Hz\r\n", SystemCoreClock);
while (1);
}
💡 这段代码怎么用?
fputc把标准库的printf重定向到串口,之后printf的每一行都会发到串口调试助手——这是最常用的调试手段- 发送每个字节都要等
USART_FLAG_TXE(发送缓冲空),保证不丢数据 - 配合
SystemCoreClock还能打印当前主频,验证时钟配置是否生效(呼应实验 08)
参考资料
| 资料 | 文件 |
|---|---|
| 串口发送 PPT | 实验5 串口—发送.pptx |
| 实验指导文档 | 实验5 串口—发送.docx |