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;
 
}
相关推荐
9号达人几秒前
支付配置时好时坏?异步方法里的对象引用坑
java·后端·面试
KingRumn5 分钟前
Linux进程间通信之D-Bus
linux·算法
fufu03116 分钟前
Linux环境下的C语言编程(四十九)
linux·c语言·算法
资生算法程序员_畅想家_剑魔10 分钟前
Java常见技术分享-14-多线程安全-锁机制-常见的锁以及底层实现-synchronized
java·开发语言
YGGP13 分钟前
【Golang】LeetCode198. 打家劫舍
算法·leetcode
啊阿狸不会拉杆15 分钟前
《数字图像处理》实验6-图像分割方法
图像处理·人工智能·算法·计算机视觉·数字图像处理
YGGP16 分钟前
【Golang】LeetCode 152. 乘积最大子数组
算法·leetcode
JoStudio18 分钟前
白帽系列01: 抓包
java·网络安全
爱学大树锯21 分钟前
171 · 乱序字符串
算法
sanggou25 分钟前
基于Java实现的简易规则引擎(日常开发难点记录)
android·java