初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能

1.创建基于STM32F03C8T6工程

1.1配置时钟

  • 选择外部高速时钟源HSE

初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能_第1张图片

1.2配置系统时钟树使其达到最大时钟72MHz(最大系统时钟)

初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能_第2张图片

配置串口1

初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能_第3张图片

生成代码

具体工程配置可参考上几篇博客,地址

初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩(超详)https://blog.csdn.net/weixin_43176183/article/details/132396744?spm=1001.2014.3001.5501

初出茅庐的小李博客之STM32CubeMx配置定时器的编码器模式https://blog.csdn.net/weixin_43176183/article/details/132306766?spm=1001.2014.3001.5501

串口重定向

  • 勾选微库
    初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能_第4张图片

  • 添加重定向代码

/* USER CODE BEGIN 0 */
#include 
/* USER CODE END 0 */

/* USER CODE BEGIN 1 */
/*********************************************************
*重定义 fputc 函数
*********************************************************/
int fputc(int ch,FILE *f)
{
	HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );
	return ch;
}
/* USER CODE END 1 */

-测试

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include 
/* USER CODE END Includes */


/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		printf("Hello World!\r\n");
		printf("初出茅庐的小李测试\r\n");
		HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

测试代码打印效果

初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能_第5张图片

总结:串口打印信息在开发项目过程种非常重要,这里使用CubeMx配置生成代码简直太高效了。

你可能感兴趣的:(STM32,stm32,嵌入式硬件,单片机,STM32CubeMx,打印)