这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Let'sdo第1期-DIY功率检测与控制系统】02过程帖:软件开发环境搭建,

共1条 1/1 1 跳转至

【Let'sdo第1期-DIY功率检测与控制系统】02过程帖:软件开发环境搭建,延时闪烁LED

高工
2025-05-20 19:46:21     打赏

    我这边经常使用keil对arm架构的单片机进行开发,本次活动我也是使用该开发软件。对于STM32F411的底层驱动部分,我使用STM32cube MX软件进行配置,也是非常方便的,而且熟练的掌握HAL库的操作,开发软件很方便。

一:keil5 mdk的下载网址如下:

https://www.keil.com/download/product/

我们可以根据自己的需求进行下载:

2.png

在弹出的兑换框内需要填写一些个人信息,这里不需要管,随便填写一下,提交就好了。

3.png

这里我们随便填写以下信息就可以,然后再弹出的界面,直接下载keil5的安装包就可以,现在目前最新的版本是5.42,但是我电脑上面安装的程序版本是5.38a,也是不影响使用的,这里没有选择最高版本的原因是,高版本安装支持包的时候会有问题,而且编译器的太高了,对我之前的程序编译有问题,这里也没做升级。

4.png

下载之后,直接一键安装就可以,建议将其安装再C盘,默认安装就可以,这里就不做解释了。

最后,安装完成之后,由于keil5 mdk本身是需要收费的,但是个人学习使用的话,我们使用注册机进行注册就可以了。

二:STM32cube Mx软件的安装过程

STM32CubeMX作为一种图形化工具,可以用于配置任何STM32器件。这款简单易用的图形用户界面为Cortex-M内核生成初始化C代码,并为Cortex-A内核生成Linux器件树。

第一步包括选择与所需外设集匹配的意法半导体STM32微控制器、微处理器或开发平台,同时包括在特定开发平台上运行的示例。

对于微处理器,第二步允许配置GPIO和设置整个系统的时钟,并交互地将外设分配给Arm® Cortex®-M或Cortex®-A内核。特定实用工具(如DDR配置和微调)增强了STM32微处理器的易用性。对于Cortex®-M内核,配置包含了额外步骤,与微控制器的十分相似。

对于微控制器和微处理器Arm® Cortex®-M,第二步为通过引脚分配冲突处理器、时钟树设置助手、功耗计算器,以及用于配置外设(如GPIO或USART)和中间件栈(如USB或TCP/IP)的实用工具来配置各个必需的嵌入式软件。

借助增强型STM32Cube扩展包,可扩展默认软件和中间件栈。可直接通过STM32CubeMX中可用的专用包管理器,直接下载意法半导体或意法半导体合作伙伴提供的软件包,其他软件包可以从本地驱动器进行安装。

此外,STM32CubeMX中的独特实用程序STM32PackCreator可帮助开发人员构建自己的增强型STM32Cube扩展包。

最终,用户可以生成与所选配置匹配的软件包。这一步提供Arm® Cortex®-M初始化C代码(可随时用于多个开发环境),或面向Arm® Cortex®-A的部分Linux®设备树。

STM32CubeMX在STM32Cube中交付。

我们需要再STM32 的生态社区下载软件

连接如下 

https://www.st.com.cn/zh/development-tools/stm32cubemx.html#st-get-software

1.png

三:STM32CubeProgrammer 软件的使用

STM32CubeProgrammer (STM32CubeProg) 是一款用于编程STM32产品的全功能多操作系统软件工具

它提供了一个易用高效的环境,通过调试接口(JTAG和SWD)和自举程序接口(UART、USB DFU、I2C、SPI和CAN)读取、写入及验证器件内存。

STM32CubeProgrammer的功能广泛,可以对STM32内部存储器(如Flash、RAM和OTP)以及外部存储器进行编程。

STM32CubeProgrammer还允许选择编程和上传、编程内容验证以及通过脚本自动编程。

STM32CubeProgrammer提供了GUI(图形用户界面)和CLI(命令行界面)版本。

2.png

四:程序的编写过程:

4.1 看下板载的LED引脚

3.png

使用STM32CUBEMX软件;总体来说官方提供的图形化配置工具,非常的好用。可以完成基本的芯片外设的配置,比如:GPIO的设置,硬件IIC配置,硬件的SPI配置,ADC、DAC、UART、TIM、PWM配置等等,总之你想要底层驱动部分,在这个软件上面自动生成。

4.2 STM32 cube MX 软件配置过程

新建工程,选择STM32 型号

4.png

选择本次活动使用的开发板 STM32F411RE,

5.png

如上图所示:STM32 cube MX中会把所有的IO口引脚标识出来,而且除电源VCC,GND引脚,BOOT0引脚,复位引脚NRST外,所有的引脚都是灰色的,

我这边使用的时候,先打开芯片的调试接口,然后配置时钟来源为系统滴答定时器

下载了一次程序之后,不能进行二次下载了(不过也不用担心,用串口也是可以进行下载的),再者就是单片机的心脏-时钟树的配置了。接下来和大家分享一下配置过程:

6.png

配置LED所使用的引脚PA5为输出模式,在本工程中不做其他的功能使用;

7.png

时钟树的配置,这里使用内部的时钟,这里只是默认配置即可,再接下来的工程中,在做修改:

8.png

生成底层的工程如下所示:

这里为了方便调节,把每个.c 和.H文件分开, 方便代码的编写:

五:调试代码:

在生成的代码中增加对LED灯引脚的操作程序,如下所示:

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
   HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
   HAL_Delay(500);
  }
  /* USER CODE END 3 */
}

注意再下载界面,打开程序复位操作:

11.png

实物验证:

WeChat_20250520193959 00_00_00-00_00_30.gif

这个帖子主要是介绍STM32 cube 基本配置过程,使能调试接口,配置系统的滴答定时器,GPIO口的配置。

希望对初次使用cube MX 配置工程的铁子一点点的帮助;

测试代码如下:

01_LED.zip





关键词: 功率     软件开发     配置    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]