• 【嵌入式设计与实现】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函数里加入:

    1. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);
    2. HAL_Delay(100);
    3. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
    4. HAL_Delay(100);

    Proteus仿真

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

    图表 15 新建工程

    图表 16 芯片型号

    添加器件

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

    图表 17 添加器件

    数据处理 

  • 相关阅读:
    配对交易之统计套利配对:协整(cointegration)
    嵌入式FreeRTOS学习八,xTaskCreate创建任务的细节以及恢复中断任务实现
    做自媒体如何获得更多的流量?
    简述Redis事务实现
    python基于php+MySQL的网络精品课程教学平台
    4、MFC:菜单栏、工具栏与状态栏
    Elasticsearch高级之-集群搭建,数据分片
    Qt下多线程的四种使用方法总结及代码示例
    【leetcode刷题】剑指 Offer(第 2 版)
    pringboot面向爱宠人群的宠物资讯系统36as8计算机毕业设计-课程设计-期末作业-毕设程序代做
  • 原文地址:https://blog.csdn.net/weixin_51695846/article/details/125428595