[应用相关] STM32:UART-printf,scanf重定向

[复制链接]
2998|25
lzmm 发表于 2024-5-14 11:20 | 显示全部楼层
如果 printf 或 scanf 使用浮点数,你可能还需要重定向 putchar 和 getchar。
jkl21 发表于 2024-5-14 15:27 | 显示全部楼层
为了使串口中断正常工作,你还需要在功能配置区点击NVIC Settings,并勾选使能串口中断。
alvpeg 发表于 2024-5-14 21:02 | 显示全部楼层
需要包含标准输入输出库以及STM32 HAL库的头文件。
claretttt 发表于 2024-5-15 11:13 | 显示全部楼层
printf和scanf函数在内部使用putchar和getchar函数来进行字符的输入和输出。因此,你需要重写这两个函数以使用UART。
tifmill 发表于 2024-5-15 15:08 | 显示全部楼层
对于高性能或高可靠性的应用,可能需要考虑使用DMA(直接内存访问)来加速UART的传输和接收。
earlmax 发表于 2024-5-16 22:17 | 显示全部楼层
int fputc(int ch, FILE *f) {    // 等待直到发送缓冲区为空    while((USART1->SR & USART_SR_TXE) == 0);    // 将字符写入数据寄存器    USART1->DR = (uint8_t) ch;    // 如果使用的是阻塞模式,这里不需要额外的等待    return ch;}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部