STM32CubeMX学习:(2)STM32CubeMX+FreeRTOS-----串口打印

测试STM32CubeMX+FreeRTOS,实现串口打印

在STM32CubeMX+FreeRTOS实现LED灯闪基础上,实现串口打印

试验工具:

1.STM32CubeMX 5.1.0

2.keil uVision4

3.STM32F405RGT6板子(只引出来串口1.2、3个LED、SWD仿真调试口)

4.JLINK下载工具

5.串口工具

配置步骤:

1.打开上个LED灯闪工程,找到STM32CubeMX类型文件,配置串口1

2.生成代码,代码生成需要时间,耐心等待

3.程序修改测试

4.串口打印程序如下,作为参考


打开上个LED灯闪工程,找到STM32CubeMX类型文件,直接在这里添加串口配置

1.配置串口,可以1和2都配置


STM32CubeMX学习:(2)STM32CubeMX+FreeRTOS-----串口打印_第1张图片
串口配置

2.生成代码,打开工程

3.程序修改测试

打开程序freertos.c文件,在/* USER CODE BEGIN Includes */这里,添加串口打印头文件

#include "stdio.h"

打开usart.c文件,在/* USER CODE BEGIN 1 */这里,添加串口1实现打印

int fputc(int ch, FILE *f)

{

/* 发送一个字节数据到USART1 */

HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xffff);

return ch;

}

在void StartLED3Task(void const * argument)的for(;;)里面添加printf("Start LED3 FLASH Task");

打印函数添加在HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);前面.

依次在4和5里也添加上打印函数printf("Start LED4 FLASH Task");和printf("Start LED5 FLASH Task");

编译,烧录程序,通过串口助手观察测试结果。

串口依次循环打印,每秒只打印一条数据。

Start LED3 FLASH Task

Start LED4 FLASH Task

Start LED5 FLASH Task


4.任务灯闪,串口打印程序如下,作为参考:

void StartLED4Task(void const * argument)

{

  /* USER CODE BEGIN StartLED4Task */

  /* Infinite loop */

  for(;;)

  {

printf("Start LED4 FLASH Task");

HAL_GPIO_TogglePin(LED4_GPIO_Port,LED4_Pin);

osDelay(1000);

  }

  /* USER CODE END StartLED4Task */

}

你可能感兴趣的:(STM32CubeMX学习:(2)STM32CubeMX+FreeRTOS-----串口打印)