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;
 
}
相关推荐
wifi___2 小时前
全局异常处理的原理
java·开发语言
我变成萤火虫3 小时前
河南萌新联赛2026第(四)场:南阳理工学院
数据结构·c++·算法·贪心算法·stl·动态规划
To_OC6 小时前
LC 239 滑动窗口最大值:从暴力超时到单调队列一遍过
javascript·算法·leetcode
2601_963870206 小时前
【计算机毕业设计】基于Spring Boot的专科医院医疗管理系统
java·spring boot·课程设计
Bingo_BIG6 小时前
Java Spring 批量修改,实体、接口、方法的定义
java·spring
.道阻且长.7 小时前
9.LeetCode算法习题讲解--滑动窗口--无重复字符的最长字串
算法·leetcode·职场和发展·哈希算法
画中有画7 小时前
软件架构中质量属性(性能、安全、可扩展性)的权衡设计
java·运维·安全
Shaoxi Zhang7 小时前
JAVA学习笔记035——对象和JSON格式
java·笔记·学习
赵丙双7 小时前
CountDownLatch 源码分析
java·aqs·countdownlatch
余额瞒着我当琳8 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++