stm32 gcc与MDK下的printf重定向方式
mdk:
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
//重定义fputc函数
int fputc(int ch, FILE *f)
{
while ((HAL_UART_GetState(&huart1)) & HAL_UART_STATE_BUSY_TX == HAL_UART_STATE_BUSY_TX);
HAL_UART_Transmit_IT(&huart1, (uint8_t *)&ch, 1);
return ch;
}
gcc:
int _write(int fd, char *pbuf, int len)
{
for (int i = 0; i < len; i++)
{
while ((HAL_UART_GetState(&huart1)) & HAL_UART_STATE_BUSY_TX == HAL_UART_STATE_BUSY_TX);
HAL_UART_Transmit_IT(&huart1, &(pbuf[i]), 1);
}
return len;
}