STM32 arm-none-eabi-gcc 交叉编译重定向printf
在linux下使用arm-none-eabi-gcc交叉编译stm32,与Keil下不同,linux下printf底层实现已经改成_write了,
所以需要重写_write函数:
int _write (int fd, char *pBuffer, int size)
{
for (int i = 0; i < size; i++)
{
while((USART1->SR&0X40)==0); //等待上一次串口数据发送完成
USART1->DR = (uint8_t) pBuffer[i]; //写DR,串口1将发送数据
}
return size;
}