stm32 printf重定向到USART

在stm32中无法直接使用printf()函数,需要1、使用fputc() 进行重定向 2、在keil中 Options-Target-UseMicroLIB勾选上。

1、寄存器

cpp 复制代码
int fputc(int ch, FILE *f)
{
  while((USART1->SR & USART_FLAG_TXE) == RESET);
  USART1->DR = (ch & (uint16_t)0x01FF);
  return ch;
}

2、标准库函数

cpp 复制代码
int fputc(int ch,FILE *f) 
 
{
 
 USART_SendDate(USART1,(u8)ch);
 
 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
 
 return ch;
 
}
相关推荐
码路飞1 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
qianpeng8971 小时前
水声匹配场定位原理及实验
算法
SimonKing1 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven973 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
董董灿是个攻城狮13 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
怒放吧德德14 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆16 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌18 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊19 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang20 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构