这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » Let'sDo第4期【液体流量检测仪】02过程贴:软件环境搭建,cube建立工程

共2条 1/1 1 跳转至

Let'sDo第4期【液体流量检测仪】02过程贴:软件环境搭建,cube建立工程,点亮板载LED

菜鸟
2025-01-01 19:26:01     打赏

一:由于平时我使用的编译环境是keil,接下来我和大家分享一下使用该编译环境来开发。建立工程使用stm32cube mx软件,可以快速地建立板载的底层驱动函数。

一:keil5 mdk下载连接:https://www.keil.com/download/product/

1.1 选择 MDK-arm ,这里可以根据自身的需求,下载所需要的版本

2.png

1.2 在弹出的界面需要填写信息,这里我们可以任意填写,填写完毕后,直接提交就可以了。

3.png

这里我们随便填写以下信息就可以,然后再弹出的界面,直接下载keil5的安装包就可以,现在目前最新的版本是5.41,但是我电脑上面安装的程序版本是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

5.png

这里ST给大家提供三种不同的环境的软件,根据自己的需求下载就可以了。

三:STM32CubeProgrammer 软件的使用

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

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

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

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

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

1.png

这里我们主要是为了使用该软件升级一下,板载的ST-link 2.1的内部版本。

四:STM32 cube 软件建立基本工程

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

自己平时使用的库函数比较多,用hal库比较少一些,不过多用几次发现,开发软件起来还是比较方便的。

4.1 查看一下开发板的原理图:

6.png

这里看到我们看到使用的板载的LED灯使用的是 PA5。

这里我使用的软件版本为:6.13.0,目前是最新的版本,在本次活动中,也是基于该版本下完成底层的驱动开发配置。

7.png

打开软件如下图所示,首先要进入芯片的选择界面,值得注意的是,配置软件时不时的会完善一些芯片资料或者驱动代码部分,所以长时间不使用的话,也是需要登录一下更新软件的。

8.png

在软件屏的左上角的输入框内,输入:STM32F103RBT6,右侧会弹出选择的芯片,(注意:在该界面下,我们在右侧的可以快速的查看芯片的资料),然后我们点击“start project”

9.png

10.png

如上图所示:STM32 cube MX中会把所有的IO口引脚标识出来,而且除电源VCC,GND引脚,BOOT0引脚,复位引脚NRST外,所有的引脚都是灰色的,在默认状态下IO口都没有被配置和使用。

对于我这种第一次使用该软件时候,真的是无从下手,配置这个软件可能有些困难,需要注意的是,在配置的时候为了避免忘记打开芯片的调试功能,可以先是使能调试功能,防止为打开调试口,

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

11.png

这里系统的时钟,使用滴答定时器;

可以看到这里使用内部RC的8MHZ时钟,AHB最大时钟可以到64Mhz,但是APB1时钟最大时36Mhz,这里我们需要注意下。

打开,生成代码的工程设置界面,如下所示:

14.png

15.png

配置一PA5引脚的工作模式:

16.png

在打开生成的GPIO.H中的 控制GPIO口电平翻转的HAL 函数;

在主函数中编码代码:代码如下

  /* 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();
  MX_USART2_UART_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(200);  
  }
  /* USER CODE END 3 */

为了更好的使用cube软件,我们在生成的代码中,编写用户代码时候,一定要在

    /* USER CODE BEGIN 3 */

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

上述字样中编写用户的代码,这样我们再次生成的代码的时候,用户编码的代码不会被覆盖,不要问我是咋知道的,问就是沉默;

在debug里面设置一下 Reset and run,这样我们下载程序进入后,代码就会软件复位了,不用引脚复位了。

17.png

看一下延时200ms,板载LED灯的闪烁效果

WeChat_20250101191932 00_00_00-00_00_30.gif

最后:通过查看以往论坛里面的帖子资料和视频,基本了解到到STM32 cube 基本配置过程,开启系统的滴答定时器,GPIO口的配置,这里先写道这里,都说万事开头难,先完成软件环境的搭建,以后再来写其他的任务。

测试代码如下所示:

01GPIO_LED.zip




关键词: STM32F103     cube环境搭建     diy    

专家
2025-01-02 08:06:42     打赏
2楼

不错啊


共2条 1/1 1 跳转至

回复

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