页首HTML代码

寄存器工程(F系列)

首先,我们基于现有目录来添加文件,形成以下结构:

STM32_ProjectTemplate
    ├─CMSIS
    │  ├─CoreSupport
    │  │  ├─Inc
    │  │  │      core_cm3.h
    │  │  │      
    │  │  └─Src
    │  │          core_cm3.c
    │  │          
    │  └─DeviceSupport
    │      ├─Inc
    │      │      stm32f10x.h
    │      │      system_stm32f*x.h
    │      │      
    │      └─Src
    │              system_stm32f*x.c
    │                
    ├─Drivers
    │  ├─HAL_Driver
    │  │  ├─Inc
    │  │  └─Src
    │  ├─LL_Driver
    │  │  ├─Inc
    │  │  └─Src
    │  └─STD_Driver
    │      ├─Inc
    │      └─Src
    ├─MDK-ARM
    │  │  startup_stm32f*x_hd.s
    │  │  STM32_ProjectTemplate.uvprojx
    │  │  
    │  ├─DebugConfig
    │  ├─Listings
    │  └─Objects
    └─User
        ├─Include
        └─Source
                main.c
  

至于其中core内核文件是选择cm3还是cm4,主要看芯片属于Cortex-M3还是Cortex-M4架构了

其次,便是利用MDK在MDK-ARM文件夹下新建工程

Project -> New μVision Project... -> ~工程名称~ -> Save

根据提示选择对应的芯片

Select Device for Target... -> STMicroelectronics -> STM32F* Series -> ~芯片型号~ -> OK

Manage Run-Time Environment 配置运行环境,一般只要PACK的版本没有问题直接OK就可以

然后,打开Manage Project Items创建逻辑目录,把需要用到的源文件汇编文件都添加进来,方便编译器顺利找到它们

这里的目录与上面的文件路径无太大关联,倒是能方便开发者归类和管理文件,不过本身的路径我们已经规划好了,所以如没有特殊情况还是尽量保持一致会比较好

接着,点击Options for Target按钮,切换内容

Output 选项卡:

勾选上Create HEX File,使工程输出HEX类型文件

C/C++ 选项卡:

Preprocessor Symbols栏的Define框中,根据芯片容量填写STM32F*x_HDSTM32F*x_MDSTM32F*x_LD,其中H、M、L分别对应的是High、Middle、Low

Language/Code Generation栏中,确保C99 Mode框的勾选

通过预处理器,编译器可选择具体的初始化方式,正确映射寄存器地址

Include Paths栏中,点击右侧的省略号,添加工程用到的所有头文件路径

关于头文件和源文件的管理:在前面创建逻辑目录时,已经将源文件路径告知编译器了,因此这里只需要再添加头文件路径,即可囊括所有工程用到的代码了

最后,在User/Source目录下新建main.c并输入以下代码:

#include "stm32f**x.h"

int main()
{
  return 0;
}

注意,代码的最后必须要有多的空行(也许是有编译器读取文件EOF的规定)

编译、汇编、链接一键三连,如果编译器返回了

0 Error(s), 0 Warning(s).

说明测试通过,恭喜你,寄存器模板建立成功!

附:常见问题与解决方案

posted on 2022-06-07 15:56  常隐  阅读(42)  评论(0编辑  收藏  举报



页脚HTML代码