【嵌入式设计与实现】1 Keil MDKS TM32 CubeMX 的开发环境建立及Proteus仿真运行

碎碎念

这半年忙的很学计系算法计网,外加可以忽略的c++,又基于我的知识储备这种较边缘知识一直顾不上来。眼看到最后期限这课不能再拖了,好歹计系学的差不多比较容易入门了,选择2天学完课开干。emmmm发现课纯理论除了教你怎么装软件,基础上等实验啥都没学。没教就没教咋还要求我们实现示波器、计算器、交通灯。。。真真大学大学,大不了自学,生气,尤其网上资源相当匮乏,而现在的我并不存在大把时间系统学习stm32,真的会笑,继续爬吧,好歹这剩下这个了,算法斗爬完了,我还怕啥。

概览

  1. 基于Keil MDK或STM32 CubeMX 的开发环境建立;
  2. 基于工程项目在Proteus中的仿真运行并分析。

原理

  • STM32 CubeMX 

基本特点

  1. 集成了MCU Finder功能,便于用户进行芯片的选型。
  2. 以图形化的方式进行时钟片内外设的配置,并自动生成初始化代码。
  3. 可以自动生成工程框架,支持MDKEWARM等多种集成开发环境。
  4. 可以提高用户的软件开发效率,聚焦于业务层的设计。

使用流程

STM选型/评估版的选型/MCU的交叉选型

    在这个阶段提供了芯片的参考手册、数据手册以及应用文档等相关的资料。

  • STM选型

    通过芯片的工作频率、芯片片内存储器的容量、芯片的引脚数量等条件来进行芯片的筛选。

  • 评估版的选型

    主要针对官方的三类开发板进行选择。

  • MCU的交叉选型

主要是为初次接触STM32微控制器的工程师进行一个平台切换的便利。

引脚的分配:对引脚的功能进行分配。

外设配置

    主要是进行外设的初始化。以串口模块为例,主要是配置串口的通讯波特率以及数据位数等初始化参数。

中间件的配置

    除了官方提供的中间件以外,还可以进行第三方插件的安装和配置。这样的话,提升了软件的扩展性。

        生成初始化代码及软件工程:借助MCU固件包。

MSU固件包:

        例程、中间件、HAL库。

STM32微控制器的各个产品系列,都有自己独立的MSU固件包。以F1为例,它所对应的MCU固件包就是STM32 Cube F1F4对应STM32 Cube F4

  • MDK-AEM

arm公司推出的集成开发环境,是目前产业界使用最广泛的嵌入式开发软件之一。

  1. 支持源代码的编辑编译,以及程序的下载和调试等多种功能。
  2. 编译器和器件支持包分离,用户可以根据需求来进行安装,有效地减少了安装软件的大小。
  3. 提供多种中间件,如实时操作系统和图形用户界面,可以有效地提高用户的开发效率。
  4. 具有强大的仿真功能。可以仿真微控制器片内的所有资源。

过程及内容

下载安装STM32 CubeMX 

  1. 需要安装Java环境。
  2. 解压CubeMX 安装包,默认配置。不能有中文路径,建议默认路径。(图表 1)

 

图表 1 解压CubeMX 安装包

安装MSU固件包

打开STM32 CubeMX,在菜单栏的Help-Manage embedded software packages中的STM32Cube MCU Packages选择STM32F4里的最新版本MCU固件包下载。完成后有绿色标志。(图表 2)

图表 2 安装MCU固件包

MDK-ARM下载安装(图表 3

默认配置。不能有中文路径,建议默认路径。

 

图表 3 MDK-ARM下载安装

  1. 完成软件安装以后,将自动弹出器件支持包的安装工具。我们需要关闭这个安装工具。关闭的方法如下:取消“Show this dialog at startup”,点击OK后关闭。(图表 4)

图表 4 关闭器件支持包安装工具

下载安装器件支持包

STM32F4器件支持包直接安装

下载地址:www.keil.com/dd2/pack,在keil栏下下载STMicroelectronics STM32F4 Series Device Support, Drivers and Examples(图表 5)

图表 5 器件支持包下载

器件包安装在线下载安装

打开keil,点击Pack Installer里左栏Device的STMicroelectronics下的STM32F4 Series,点击右栏的Packs的Keil::STM32F4xx_DFP进行下载。安装成功后如图编程绿色按钮“Up to date”.(图表 6)

图表 6 器件支持包在线安装

STM32CubeMX使用:驱动指示灯

控制开发板上用户指示灯LD2每隔一秒闪烁。建议用户在桌面上新建一个名为CubeMX的文件夹,用于存放例程代码。对于STM32微控制器的外设学习,可以再建立子文件夹:按照外设名称来建立。(英文路径)

目标选择

确定所使用的芯片型号。打开软件点击基于芯片新建工程。(图表 7

图表 7 基于芯片新建工程

图表 8 选型界面

引脚分配

明确引脚的功能。找到PA5引脚(可搜索)配置为GPIO_Output,用作LD2指示灯输出,配置玩PA5变亮绿色以有对应标签。(图表 9

图表 9 引脚分配

外设配置

配置外设的初始化参数。以串口为例,主要是要配置通讯的波特率数据格式。

配置RCC,选System Core-RCC,选旁路时钟BYPASS Clock SourcePH0 PH1引脚对应变绿。(图表 10

图表 10 配置RCC

配置调试串口,选System Core-SYS,选Debug-Serial WirePH13 PH14引脚对应变绿。(图表 11

图表 11 配置调试串口

   

GPIO配置(图表 12)

图表 12 配置GPIO

时钟配置:

   选择时钟源以及确定系统时钟和外设时钟的工作频率。

    时钟源频率改为8,选择锁相环输入时钟HSE,选系统时钟源。HCLK时钟频率改为100并回车,软件自动调整。(图表 13)

图表 13 时钟配置

工程配置

确定工程名称(图表 14),选择时钟源以及确定。系统时钟和外设时钟的工作频率。

图表 14 工程配置

程序编写

    为了实现仿真,改用STMF401VCT6,STM32CubeIDE编程。Main函数里加入:

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);
	  HAL_Delay(100);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
	  HAL_Delay(100);

Proteus仿真

新建工程(图表 15),选择芯片型号(图表 16

图表 15 新建工程

图表 16 芯片型号

添加器件

    加入LED及RES电阻。画图。(图表 17)

图表 17 添加器件

数据处理 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!对于研究STM32CubeMXKeil5和Proteus仿真软件的使用,我可以为你提供一些基本的指导和信息。 首先,STM32CubeMX是一个用于配置和初始化STM32微控制器的工具。它可以帮助你生成基于HAL库或LL库的C代码框架,并提供图形界面来配置各种外设和引脚设置。你可以使用它来快速生成初始化代码,并且可以将生成的代码导入到Keil5开发环境中进行进一步的开发和编程。 Keil5是一种集成开发环境IDE),用于编写、编译和调试嵌入式系统的软件。它支持多种编程语言,包括C和汇编语言,可以与STM32CubeMX无缝集成。你可以使用Keil5编写STM32的应用程序,并通过调试器进行调试和测试。 Proteus是一种电子电路仿真软件,可以用于仿真和验证电路设计。它支持多种微控制器模型,包括STMicroelectronics的STM32系列。你可以在Proteus中创建STM32的电路图,并进行仿真以验证你的设计是否正常工作。 以下是一些使用这些工具的基本步骤: 1. 使用STM32CubeMX配置和生成代码。打开STM32CubeMX,选择你的目标STM32微控制器型号,然后通过图形界面配置外设和引脚设置。完成配置后,生成初始化代码并导出到Keil5。 2. 在Keil5中导入生成的代码。打开Keil5,创建一个新项目,选择正确的目标设备型号,并将生成的代码导入到项目中。然后可以在Keil5中进行编写、编译和调试。 3. 在Proteus中创建电路图并进行仿真。打开Proteus,创建一个新的电路图,并选择正确的STM32微控制器模型。然后,将所需的外设和电路元件添加到电路图中,并连接它们。完成后,可以运行仿真以验证电路是否按预期工作。 希望以上信息对你有所帮助!如果你对任何具体的问题或进一步的指导有兴趣,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jennie佳妮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值