【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 @ 2023-11-28 16:47  FBshark  阅读(210)  评论(0编辑  收藏  举报