布

布里莲拉夫杂谈

抬头望月

  • 首页
  • Halo
  • 关于
Home STM32 HAL库使用&学习
文章

STM32 HAL库使用&学习

Posted 2022-08-5 Updated recently
By pezayo
5~6 min read

STM32F407

我在网上看到很多奇奇怪怪的东西。其中就有一个STM32F4discovery,这个我不知道是啥,但总是会看到。包括使用CLion时配OpenOCD时都会跳出它的config文件。但最后我选的还是STM32F4xx的config。在此还得感谢@Keiler提供的友情帮助,帮我暂时配好了CLion的开发环境。有关于CLion开发环境的配置我在另一篇文档中有讲述。

开发环境:

板子:正点原子探索者开发板

MCU:STM32F407ZGT6

串口:RS232

屏幕:TFTLCD(已损坏)

软件:CLion + STM32CubeMX 以及 Keil

教程:正点原子官方配套例程

下载器:ST-Link

串口配置

配置串口让我很是头疼。基本照着网上的来一遍都可以。但是其中还有一些细节——一个是将 printf() 函数重定向到串口,一个是要配置 HSE_VALUE 的值,因为它直接影响到串口波特率的配置。

  1. printf() 重定向:直接参考这篇文档,这篇文档讲的非常详细,只要在 usart.c 文件末尾加上以下代码,另外还需在 usart.h 头文件中 #include <stdio.h> 即可。

```c
/ USER CODE BEGIN 1 /

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 EVAL_COM1 and Loop until the end of transmission /
HAL_UART_Transmit(&huart1, (uint8_t
)&ch, 1, 0xFFFF);

return ch;
}
/ USER CODE END 1 /
```
2. 配置HSE_VALUE:参考这篇博客,这篇博客讲到 HSE_VALUE 如何影响到串口波特率的配置问题。我遇到的问题是使用 STM32CubeMX 直接自动生成 168MHz 的时钟,这里了他默认的外部时钟为25MHz,即 HSE_VALUE = 25000000。而我对比了正点原子的官方串口通信例程中的值,例程中的值则为8MHz。所以我的串口一直乱码,而例程则不会乱码,将 HSE_VALUE 改为8MHz时,串口通信正常。

至此,串口配置完毕。此后我便可以通过串口进行通信了!!!耶比

定时器中断配置

定时器中断,这里我使用的是定时器TIM3,进入

record
STM32
License:  CC BY 4.0
Share

Further Reading

Aug 29, 2026

OpenCode 跨会话记忆 + 会话内不失真压缩上下文方案

省流版 claude-mem 负责全部将细节注意记住,跨会话记忆存储当前 top 方案 magic-context 负责会话内上下文裁剪,和近期记忆保存。记忆方面不强,但是会话内保持任务目标和遵守规范行为进行进行上下文裁剪压缩 Strict-Doc 负责记录固化的项目文档文件,记忆文件。主要是方便人

Aug 9, 2022

Qt 常用语法

Qt Creator 工程 初始化 namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nu

Aug 5, 2022

STM32 HAL库使用&学习

STM32F407 我在网上看到很多奇奇怪怪的东西。其中就有一个STM32F4discovery,这个我不知道是啥,但总是会看到。包括使用CLion时配OpenOCD时都会跳出它的config文件。但最后我选的还是STM32F4xx的config。在此还得感谢@Keiler提供的友情帮助,帮我暂时配

OLDER

Qt 常用语法

NEWER

CLion-STM32开发

Recently Updated

  • OpenCode 跨会话记忆 + 会话内不失真压缩上下文方案
  • wine 和 deepin-wine 安装 wechat QQ
  • Multisim Edu PLD 的使用
  • rime double_pinyin_fly with fcitx in Ubuntu
  • Qt 常用语法

Trending Tags

input method ssh Qt markdown install software STM32 software shortcuts latex details code file

Contents

©2026 布里莲拉夫杂谈. Some rights reserved.

Using the Halo theme Chirpy