发新帖我要提问
12
返回列表
打印
[应用相关]

STM32:UART-printf,scanf重定向

[复制链接]
楼主: tpgf
手机看帖
扫描二维码
随时随地手机跟帖
21
lzmm| | 2024-5-14 11:20 | 只看该作者 回帖奖励 |倒序浏览
如果 printf 或 scanf 使用浮点数,你可能还需要重定向 putchar 和 getchar。

使用特权

评论回复
22
jkl21| | 2024-5-14 15:27 | 只看该作者
为了使串口中断正常工作,你还需要在功能配置区点击NVIC Settings,并勾选使能串口中断。

使用特权

评论回复
23
alvpeg| | 2024-5-14 21:02 | 只看该作者
需要包含标准输入输出库以及STM32 HAL库的头文件。

使用特权

评论回复
24
claretttt| | 2024-5-15 11:13 | 只看该作者
printf和scanf函数在内部使用putchar和getchar函数来进行字符的输入和输出。因此,你需要重写这两个函数以使用UART。

使用特权

评论回复
25
tifmill| | 2024-5-15 15:08 | 只看该作者
对于高性能或高可靠性的应用,可能需要考虑使用DMA(直接内存访问)来加速UART的传输和接收。

使用特权

评论回复
26
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;}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则