N32国民技术环境搭建

环境搭建(ARM)

一般的通用配置都会有:启动文件,CMSIS系统文件,固件库,用户文件。
项目启动之后一般会自己寻找main()函数

1.1需要找到pack包

安装了pack包才会有各种单片机的选择
image

1.2.选择单片机,创建工程

image

1.3.分组

image

1.4.添加启动文件

image

1.5.添加系统文件-CMSIS

每个公司都会有自己的CMSIS文件,他们都遵循ARM规范
但是各自实现不同,就类似函数名一样给你规定好了,但是
你具体怎么实现就不知道了,所以要找到,各个芯片厂商
自己的CMSIS系统文件

image

1.6.固件库--

固件库里面有各种外设,
固件库就是各芯片厂商提供的"外设操作工具箱",每个公司都不同,而且差异很大!
CMSIS = 国家规定的普通话语法标准
固件库 = 各个公司内部的工作术语和操作手册
固件库里面有各种驱动,例如GPIO,TIM,ADC,DAC等等,每个公司实现方式不同
所以内容有很大的差异。

image

1.7.用户文件--这个就是我们自己编写的文件

用户文件可以建立多个,是我们自己实现代码的文件
image

也可以有自己的框架
image

如果使用Stm32Cubmx很多都生成了
image

1.8.用户文件相关配置

1.8.1 配置生成hex文件

image

image

1.8.2 放入头文件路径和c文件

image

image

放入的是文件夹
image

放入C文件
image

image

image

1.8.4 utilites

image

1.8.5 C++选型卡

Keil中C++选项卡的"Preprocessor Symbols"中的"Define"是C/C++预处理器的宏定义设置,它允许你在编译时定义全局宏,影响整个项目的编译过程。

image

宏定义作用

// Keil Define中根据实际芯片选择:
// Define: STM32F103xB

// 头文件stm32f1xx.h中:
#ifdef STM32F103xB
    #include "stm32f103xb.h"     // 包含C8型号的寄存器定义
    #define FLASH_SIZE 128       // 128KB
#elif defined(STM32F103xE)
    #include "stm32f103xe.h"     // 包含RE型号的寄存器定义  
    #define FLASH_SIZE 512       // 512KB
#endif

// 这样同一套代码可以支持多种芯片

实际场景:产品线有多个型号,硬件略有差异

STM32F103C8:64KB Flash,20KB RAM

STM32F103RC:256KB Flash,48KB RAM

通过宏定义切换,使用同一套代码库

image

使用 USE_STDPERIPH_DRIVER 意味着使用的是老的"标准外设库",而不是现代的"HAL库"。

STM32一般配置的是HAL库
posted @ 2026-07-08 20:30  拿受用  阅读(5)  评论(0)    收藏  举报