STM32G0学习手册——开发环境搭建与熟悉(CubeMX与MDK5)

目录

CubeMX设置

CubeMX界面认识

Project(工程管理)

Code Generator(代码生成)

MDK-ARM软件安装

ST-LINK设置


CubeMX设置

1、在官网下载安装包安装,链接地址

2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;

如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。

固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Form local..."安装。

或者在主界面点击(INSTALL/REMOVE)安装本地固件包。

3、在New Project 中选择"Start My project from MCU"(非官方的开发板)找对应的芯片,或者"Start My project frome STBoard"(对应官方的开发板型号),软件就会自动创建工程。

CubeMX界面认识

Pinout&Configuration:用于引脚功能设置,使芯片有特定的功能。(之后会慢慢讲解)

Clock Configuration:时钟树设置。(之后会慢慢讲解)

Project Manger:用于工程项目设置,输出代码设置。

Tools:用于电源管理。

上面“GENERATE CODE”用于生产代码工程。


我们来讲一下"Project Manger"里面的一些设置

CubeMX的Project Manager工程管理器包含:Project(工程管理)、 Code Generator(代码生成)、 Advanced Settings(高级设置)三部分内容。

Project(工程管理)

  •  Project Name:工程名称
  • Project Location:工程存放路径
  • Application Struture:应用程序结构

Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。

Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。

  • Toolchain Folder Location:工具链文件夹路径
  • Toolchain/IDE:工具链/开发环境选择

安装自己实际IDE环境来选择,我这里用的MDK-ARM,版本是V5。后面的笔记也是用这个环境(除非用说明)。

  • 堆栈设置:Heap堆为0x200,Stack栈为0x400
  • MCU参考型号
  • 固件包名称与版本

如你创建了工程后,更新到了最新的固件包。旧工程还是用旧固件包,系统就会提示你"Migrate to the latest supported Fimware version"("迁移到支持的最新固件版本")。

  • 使用默认固件包

Code Generator(代码生成)

  • Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中。
  • Copy only the necessary library files 只复制必要的库文件。

这个相比上一个减少了很多文件。比如你没有使用CAN、SPI...等外设,就不会拷贝相关库文件到你工程下。

  • Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考
  • Generate peripheral initialization as a pair of'.c/.h' files per peripheral 每个外设生成独立的'.c/.h'文件

不勾:所有初始化代码都生成在main.c

勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。

  • Backup previously generated files when re-generating 在重新生成时备份以前生成的文件

重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。

  • Keep User Code when re-generating 在重新生成时保留用户代码

比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。

注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。

  • Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件 

比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。

  • Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)

这个做低功耗产品时这个选项有必要勾选。

  • Enable Full Assert 使能所有断言
  • Select a template to generate customized code 选择一个模板来生成自定义代码 (还没用过这功能)

Advanced Settings(高级设置)

HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。

  • Not Generate Function Call不生成函数调用

也就是你代码不调用对应初始化函数。

比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。

  • Viility (Static)可见性(静态)

这个就是初始化代码声明为static。

提示:

A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.

B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
 

MDK-ARM软件安装

好了,我们先回到MDK-ARM软件的安装。

KEIL公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。

uVision是KEIL公司开发的一个集成开发环境(IDE),目前最新的版本是uVision6。

MDK(Microcontroller Development Kit),也称MDK-ARMKEIL MDKRealView MDKKEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具。

1、安装MDK-ARM软件,下载链接

2、未输入许可软件为Lite版本,代码大小限制32Kb;

3、下载MDK上的芯片固件包(DFP),最新版本包链接地址。不过下载速度很慢。找其他人共享在网盘的包也是可以的,下载到电脑后,直接双击打开就会安装固件包。

ST-LINK设置

  1. 将st-link接入电脑usb,安装驱动。
  2. 在mdk软件中,点击魔术棒工具"Options for Target",
  3. 在"Debug"选项卡中,选择"ST-Link Debugger",在点击右边的setting

           

     4.弹出的框中,选择"Flash Download".把右边三个勾勾上,下面的芯片目标选择正确,前提是要安装了芯片的固件包才行。(打开cubemx生产的工程,芯片一般都是选择正确)。最后点击确认。

最后我们的开发环境已经搭建好了。


### N32G435 工程配置教程 #### 1. 开发环境搭建 为了顺利进行N32G435系列单片机的开发工作,需先准备好必要的工具链和集成开发环境(IDE),通常推荐使用Keil MDK或IAR Embedded Workbench作为主要编译器和支持平台。 对于器件支持包的选择,在官方提供的文档中提到应当从官方网站获取最新的固件库以及相应的初始化项目模板[^1]。这有助于确保所使用的函数接口是最新的,并且兼容当前版本的操作系统和其他外设驱动程序。 #### 2. 使用CubeMX创建新工程 类似于STM32F102CBT6移植UCOS-III的过程描述,针对N32G435也可以通过ST公司的图形化配置工具——STM32CubeMX来快速建立基于HAL库的新工程项目结构[^2]。具体操作如下: - 打开STM32CubeMX并导入目标芯片型号; - 配置时钟树、GPIO引脚分配以及其他所需硬件资源; - 导出适用于选定IDE(如MDK)的基础框架代码; ```c // 示例:在main.c中的基本循环逻辑 int main(void){ HAL_Init(); // 初始化HAL库 SystemClock_Config(); // 设置系统时钟 while (1){ // 用户应用程序入口 } } ``` #### 3. 添加第三方组件/中间件 如果计划引入额外的功能模块比如操作系统内核,则可以参照类似的方式将这些外部依赖项加入到现有项目当中去。需要注意的是不同RTOS可能有不同的适配需求,因此建议仔细阅读对应产品的技术手册完成具体的调整过程。 #### 4. 编写应用层代码 最后一步就是根据实际应用场景编写业务处理部分的实现细节了。这里不再赘述通用编程技巧,而是强调要充分利用好之前定义好的各种API接口来进行高效的数据交换和服务调用。 #### 注意事项 在整个过程中有几个方面值得特别关注: - **保持软件更新**:始终跟踪厂商发布的最新补丁和技术资料。 - **遵循最佳实践**:按照社区共识的方法论行事可减少潜在风险。 - **充分测试验证**:任何改动都应经过严格的单元测试以确认其正确性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值