【STM32基础】STM32 串口重定向的各种形式

为了使用 stdio 的printf()函数,而printf()函数是依靠底层的 fputc() 工作的,所以需要将 fputc 函数进行重写,这个过程叫做“重定向”。

STM32 标准库重定向:

int fputc(int ch, FILE* f)
{
	
	UART_Send_Byte(USART1, (uint8_t)ch);
	return ch;
	
}

STM32 HAL库重定向:

/* USER CODE BEGIN 1 */
int fputc(int ch, FILE* f)
{
	//函数原型 HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
	HAL_UART_Transmit(&huart1,(uint8_t *)&ch, 1, 10);
	return ch;
}

 

扩展:

当需要使用scanf()函数的时候,重定向fgetc()函数

int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
  return ch;
}

 

另外:注意在魔术棒里选择Use MicroLIB

posted @   FBshark  阅读(604)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示