0%

【STM32CubeMX】学习笔记 --> STM32CubeMX_Usart

😊 转载请全文转载,并标明文章出处

环境介绍

  • 操作系统: Window10 企业版
  • IDE开发环境: STM32CubeIDE 1.2.0
  • STM32CubeMX版本: STM32CubeMX Version 5.4.0
  • Mcu and Firmware Package: STM32Cube FW_H7 V1.5.0
  • 硬件开发板: 本人自己设计的最小系统

1. 打开 STM32CubeMX

2. 创建工程Project

3. 选择自己MCU的型号

  • 本人MCU型号:STM32H743IITx
  • 双击红色区域直接进入配置界面

4. RCC 配置

  • 单击 System Core -> 单击RCC
    • RCC Mode and Configuration
      • High Speed Clock (HSE) -> Crystal/Ceramic Resonator
      • Low Speed Clock (LSE) -> Crystal/Ceramic Resonator

5. 串口USART配置

  • 单击 Connectivity -> 单击 USART1

    • USART1 Mode

      • Mode:Asynchronous
    • USART1 Configuration

      • Parameter Settings(基础配置)
      • NVIC Settings(中断配置)勾选Enabled
      • GPIO Settings (I/O配置)
        • PA9 -> USART1_TX / PA10 -> UASRT1_RX
        • I/O 空闲状态全部上拉(Pull-Up)

6. 时钟树配置(Clock Configuration)

7. 生成路径及IDE选择配置

  • Project

    • Project Name:工程名(根据自己要求来写)

    • Project Location:生成工程路径(选择自己常用路径)

    • Toolchain / IDE:开发环境选择(本工程选择STM32CubeIDE开发环境)

      • EWARM
      • MDK_ARM
      • SW4STM32
      • TrueSTUDIO
      • STM32CubeIDE
      • MakeFile
    • Mcu and Firmware Package (STM32Cube FW_H7 V1.5.0)

      • MCU Reference:STM32H743IITx
      • Firmware Package Name and Version:STM32Cube FW_H7 V1.5.0 (版本不同,生成的工程可能会有点差异)
  • Code Generator 配置选择

至此工程配置基本完成(单击 GENERATE CODE 生成工程)

8. 打开 STM32CubeIDE 编译生成工程

9. Printf 打印配置

  • usart.h 添加代码
#include "stdio.h"
  • usart.c 添加代码
#include "stdio.h"

/* Private function prototypes -----------------------------------------------*/
#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__ */
/**
* @brief Retargets the C library printf function to the USART.
* @param None
* @retval None
*/
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* e.g. write a character to the USART1 and Loop until the end of transmission */
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

return ch;
}

10. STM32H743IITx 工程模板