1. CubeMX生成工程和管脚定义
步骤: GPIO定义-->UART1使能-->配置菜单设置串口中断
CubeMX用熟了还不错,还可以直接带入FREERTOS,值得学习
2. 修改输出重定义,添加两个内容:
注意,修改代码要在USER区域,这样重新定义CubeMX工程时不会被覆盖
/* USER CODE BEGIN 0 */
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/* USER CODE END 0 */
/* USER CODE BEGIN 4 */
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit_IT(&huart1,(uint8_t *)&ch,1);
// USART_SendData(huart1,(uint8_t )ch);
return ch;
}
void Delay( uint32_t nCount)
{
while(nCount--)
{
}
}
/* USER CODE END 4 */
在程序中再使用printf时就没问题了
如果需要调试串口定义到其他串口,则HARL_UART_Transmit_IT那一代码指定串口