STM32的个人备忘录
创建工程的的必要步骤(基于STM32CubeIDE)
-
选择
驱动类型:打开*.ioc,依次点击Project Manager->Advanced Settings,根据界面的提示, 对相应项选择HAL或LL即可。注意:在设置并保存之后,若没有自动弹出询问是否生成代码的对话框, 则需要手动对*.ioc右击,然后点击Generate Code来触发生成动作,后续需要修改*.ioc的步骤亦同理。 - 配置
时钟:打开*.ioc,然后:- 切换到
Pinout & Configuration页面,先(在Pinout view标签页)将对应的时钟引脚设置成接外部晶振的状态, 再依次点击System view->RCC,找到RCC Mode and Configuration,为High Speed Clock (HSE)选择Crystal/Ceramic Resonator。 - 切换到
Clock Configuration页面,根据界面的提示,设置好时钟路径、倍频参数、分频参数, 即可实时看到各路时钟的最终频率。
- 切换到
- 创建
用户代码目录:- 对工程右击,依次选择
New->Source Folder,目录名填User,最后点击Finish按钮。 - 右击该目录,选择
Add/remove include path...,将其加入编译器可搜索的头文件目录列表。
- 对工程右击,依次选择
-
创建
业务入口代码:在User目录下创建biz_entry.h和biz_entry.c,并分别编写void do_biz(void)的声明和函数体, 然后在Core/Src/main.c文件主函数的死循环里进行调用。 -
创建
版本头文件:在User目录下创建versions.h,内容详见懒编程秘笈 的vim/templates/h.tpl.list/versions.tpl。 - 创建
纯内存烧录的链接脚本:- 将
STM32*_FLASH.ld复制一份,并重命名为STM32*_RAM.ld,然后将所有的>FLASH和>RAM AT> FLASH均改成>RAM。 - 对工程右击,依次选择
Properties->C/C++ Build->Settings->Tool Settings->MCU GCC Linker->General, 找到Linker Script (-T)并将方框内的STM32*_FLASH.ld改成STM32*_RAM.ld,最后点击Apply and Close按钮。 注意:仅当需要纯内存烧录时才执行此步骤,当用于生产环境时,还是要恢复成STM32*_FLASH.ld。
- 将
- 创建
makefile.init:- 在工程根目录下创建,内容详见懒编程秘笈
的
vim/templates/mk.tpl.list/stm32_init.tpl。 - 对工程右击,依次选择
Properties->C/C++ Build->Settings->Tool Settings->MCU GCC Compiler->Include paths, 找到Include files (-include)并新建一项"generated.h"(注意此处的文件名需要用英文双引号括起), 最后点击Apply and Close按钮。
- 在工程根目录下创建,内容详见懒编程秘笈
的
- 创建
扩展Makefile:在工程根目录下创建,名为Makefile,内容详见懒编程秘笈 的vim/templates/mk.tpl.list/stm32cubeide.tpl。
串口编程的陷阱
待补充。