使用正点原子的ALIENTEK 精英STM32F103开发板,使用USB转串口模块,模块的RXD接PA9(USART1_TX),模块的TXD接PA10(USART1_RX),将原来的开发板上的RXD和TXD短接的短线帽拿掉。接下来代码中比较重要的是Keil中的printf和STM32CubeIDE的printf重定向是不一样的。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) //STM32CubeIDE
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) //Keil
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
return ch;
}
int _write(int file, char *ptr, int len)
{
int DataIdx;
for(DataIdx=0; DataIdx<len; DataIdx++)
{
__io_putchar(*ptr++);
}
return len;
}