【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