🔬 实验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);
}
💡 这段代码怎么用?
  1. fputc 把标准库的 printf 重定向到串口,之后 printf 的每一行都会发到串口调试助手——这是最常用的调试手段
  2. 发送每个字节都要等 USART_FLAG_TXE(发送缓冲空),保证不丢数据
  3. 配合 SystemCoreClock 还能打印当前主频,验证时钟配置是否生效(呼应实验 08)

参考资料

资料文件
串口发送 PPT实验5 串口—发送.pptx
实验指导文档实验5 串口—发送.docx