MX生成的HAL库代码没有printf,如果需要使用的话需要把标准库里的回调函数移植过去,网上已经提供了很多教程
这里提供了一种和网上不一样的printf使用方法,咱也是学习来的这里记录一下
生成工程以后在
/* USER CODE BEGIN PD */
/* USER CODE END PD */
中间添加
1 #define printf1(...) HAL_UART_Transmit(&huart1,2 (uint8_t *)u_buf,3 sprintf((char*)u_buf,__VA_ARGS__),4 0xffff)
注意这里和普通的printf多了一个1,是printf1
我们在下面mian函数的循环里面调用一下测试
1 /* USER CODE BEGIN WHILE */ 2 while (1) 3 { 4 /* USER CODE END WHILE */ 5 6 /* USER CODE BEGIN 3 */ 7 HAL_Delay(2000); 8 printf1("123456789"); 9 } 10 /* USER CODE END 3 */
可以看到在串口助手打印了数据
这里就不解释代码的意思了,主要是简单的使用
stm32cubemx生成的HAL代码配置usart1使用printf打印数据
原文:https://www.cnblogs.com/hjf-log/p/12522796.html