当前位置: 首页 > news >正文

STM32就业前景和下载KEIL软件(保姆级)

  1. 嵌入式的概述与体系

国内定义:嵌入式就是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对于体积、可靠性、功耗、性能等方面有严格要求的专用计算机系统,要求嵌入式开发人员对嵌入式知识体系有清晰的认知。

  1. 微控制器的发展背景

C51属于传统的8位单片机,诞生于上世纪70年代,是在1980年开发的MCS-51系列单片机发展出来,也被称为8051。一般现在在大学中教学,满足不了现在的市场需求(成本低、性能高、功耗低、多任务、易用界面),一般用在小家电、消费类电子产品。

基于这样的市场需求,ARM公司推出了一款基于ARMv7架构的Cortex M3/M432位的内核,一般用在工控场景,ST(意法半导体)公司就基于这个内核推出了一款新的MCU(微处理器),就叫做STM32。

三、STM32的学习原因

STM32系列芯片介于低端和高端芯片之间。相对于低端芯片而言,STM32拥有强大的内核架构、更多的片上外设、可以运行uCOS、FreeRTOS等实时操作系统,相对于高端芯片而言STM32成本更低、实时性较强。所以学习STM32是大多数嵌入式开发人员的必经之路。

需要注意:学习STM32不是仅仅对相关外设(串口、定时器....)进行学习,而是要掌握软件的设计流程,这样在设计一款产品的时候才知道如何进行(器件选型、协议选择、数据格式.....),并且大多数复杂的产品都会搭载实时操作系统,所以也要掌握实时操作系统的设计架构和使用方法。

四、STM32的应用领域

STM32属于微控制器MCU,自带了各种常用通信接口,比如 USART、 I2C、 SPI 等,可接非常多的传感器,可以控制很多的设备。一般STM32都是主要用在低功耗的产品上,如智能手环,智能门锁、微型四轴飞行器,二轴平衡车、移动POS机,智能电饭锅,3D 打印机等等。

五、STM32的就业前景

大家都清楚目前国内已经处于物联网时代,而物联网也就是指万物互联,2014年也被称为智能家居的元年,华为和很多国内的大型公司都在打造智能家居的生态链,但是目前而言还没有达到普及智能家居的程度,而国内的人口基数大,并且开放了三胎政策,所以智能家居的市场前景是非常广阔的,而华为推出了鸿蒙操作系统,鸿蒙操作系统的理念就是“一生万物,万物归一”,也就是把手机当做控制终端,再结合其他的智能硬件,最终达到万物互联的程度。

作业:思考自己想要做什么项目,整理为文档,要求图文并茂(项目背景、竞品分析、项目需求、面向群体、成本分析)。 提示:可以参考一些开源项目,比如立创开源平台

作业:需要购买硬件设备,给大家提供一个设备清单,清单中包含了必须要购买和学习的传感器

  1. 集成开发环境的搭建
  • MDK软件的下载

想要学习STM32,需要搭建好对应的开发环境,一般都是使用KEIL公司设计的KEIL5软件进行开发,由于KEIL公司已经在2005年被ARM公司收购,所以现在也被称为 ARM-MDK,该软件想要下载该软件,可以登录 www.keil.com 进行下载,也可以评论获取

  • MDK软件的结构

  • MDK软件的版本

注意:精简版的MDK软件一般具有代码大小限制,一般小于32KB的代码都可以使用该软件正常编译。

  • MDK软件的安装
  1. 从官网下载对应的安装包,安装包版本可以根据实际需求取选择,但是不要选择太低版本。

  1. 双击应用程序,按照软件的提示进行按照,注意:软件的安装路径不可以存在中文以及空格。

  1. 如果软件安装完成后,记得要安装ST公司提供的芯片支持包xxxx.pack,双击运行程序即可

  1. 如果芯片支持包安装完成,则可以对KEIL5软件进行破解,注意破解的时候把杀毒软件关闭

注意:如果粘贴CID的过程中弹出警告窗口,则以管理员权限重新打开KEIL5软件,再次进行粘贴即可

  • MDK软件的配置
  1. 配置KEIL5软件的字符编码为中文简体GB2312,并且设置KEIl5软件可以显示文本的行

练习:下载开发环境,并在自己电脑安装KEIL软件,安装STM32F4系列的芯片支持包,并对KEIL进行破解以及配置KEIL软件!

提示:如果自己的电脑已经安装过KEIL软件,则需要检查KEIL软件的版本,不要过低,不要比5.14版本低。

作业:要求对Vscode进行配置,可以直接在Vsocde完成程序的编辑、编译等相关动作,要求Vscode和KEIL软件进行联动。

七、STM32的开发方式

目前主流的STM32的开发方式大体分为三种:函数库开发 + 寄存器开发 + 图形界面开发!

  1. 寄存器开发

STM32的资源外设比较丰富,所以导致寄存器的数量增多并且复杂度增大,要求开发人员需要掌握底层开发的相关知识才行。

一般情况下,只有涉及对实时性要求比较高,如频繁调用的中断服务函数等才会直接使用寄存器开发,其余大部分情况下,都是使用函数库开发。

  1. 函数库开发

对于函数库开发来说,ST公司一共开发了两套库(STD库+HAL库),对于目前的市场趋势而言,ST公司主推HAL库,已经对标准外设库停止维护,但是对于实际的开发过程而言,目前绝大多数公司都采用标准外设库进行项目的开发(更稳定,资料更多,容易维护)

STM32标准外设库是ST公司专门针对STM32提供的一系列API(函数接口),用户可以调用这些函数来配置STM32底层的寄存器,所以开发人员不需要特别关注底层寄存器操作,有利于快速开发和维护。

库是架设在寄存器和用户代码之间的代码,向下与寄存器相关,向上提供给用户相关接口。

  1. 图形库开发

指的是利用ST公司专门设计的一款图形界面软件(STM32CubeMX)来自动生成代码,所以这款软件也被称为代码生成器,用户只需要根据实际需求进行参数选择,就可以自动生成初始化代码,极大的提高了开发效率,所以也是ST公司这几年主推的一种方式。该软件内部集成的HAL库,所以生成的初始化代码也是基于HAL库的。注意:适合有经验的工程师。

八、STM32的开发平台

  1. STM32开发平台的芯片

本次阶段的开发平台为Cortex-M4开发板,M4开发板搭载的芯片是ST公司设计的芯片,型号为STM32F407ZET6,芯片采用的内核为ARM公司设计的Cortex M4内核(主频高达168MHZ,带DSP和FPU 浮点运算单元),对于芯片型号的说明可以参考ST公司提供的芯片选型手册。

  1. STM32开发平台的资源

  1. STM32固件库工程

想要开发的前提就是创建好一个工程模板,为了可以尽快的入门,所以搭建的工程是以标准外设库为例,如果想要采用标准外设库,则需要从官网下载标准外设库的源码包,并完成移植。

作业:根据ST公司提供的帮助文件以及搭建工程的文档,独立完成工程模板的搭建 提示:注意细节,要有耐心

十、STM32的程序下载

STM32想要下载程序的方法有两种:串口下载 + 下载器下载(JTAG、JLINK、STLINK...),这里就涉及到STM32启动方式(自举模式)。这里可以参考STM32F4中文参考手册的2.4章节。

STM32启动方式(自举模式)有三种:从用户闪存启动(Flash)、从系统存储器启动、从内部SRAM启动。

提示:自举模式指的是把程序下载到MCU内部的哪个空间来存储以及执行程序时从MCU内部的哪个空间开始执行。

  • 主Flash启动

指的是从用户闪存空间启动(FLash空间 512K),也是最常用的工作模式,一般用JTAG接口和SW接口下载程序的时候意味着程序要下载到Flash中,在复位之后也是从Flash运行程序。一般用户闪存(Flash)可以反复擦除10万次左右,所以不用担心芯片锁死或者被擦爆。

  1. 把开发板的BOOT引脚进行设置(BOOT0 =0,BOOT1= x),然后把JLINK下载器和开发板链接

  1. 安装JLINK下载器的驱动程序,并检查JLINK驱动安装成功,设备管理器--->通用串行总线

  1. 打开KEIL5软件,对工程进行下载配置,选择JLINK作为下载器,并设置JLINK的一些参数

  1. JLINK和Flash的配置完成后,需要对程序进行编译,编译通过后点击Download下载程序

练习:完成JLINK下载器接线并安装JLINK驱动,配置工程的下载器参数并实现程序的下载!

相关文章:

  • Vue3中setup运行时机介绍
  • FC7300 DMA MCAL 配置引导
  • 经典循环神经网络变体
  • 将已打包好的aar文件,上传到 Coding 的 Maven 仓库
  • Windows11安装rockerMq5.0+以及springboot集成rockerMq
  • iOS SwiftUI的具体运用实例(SwiftUI库的运用)
  • 大语言模型 10 - 从0开始训练GPT 0.25B参数量 补充知识之模型架构 MoE、ReLU、FFN、MixFFN
  • 应用层DDoS防护:从请求特征到行为链分析
  • Day 27 函数专题2 装饰器
  • 高可用消息队列实战:AWS SQS 在分布式系统中的核心解决方案
  • Core Web Vitals 全链路优化:从浏览器引擎到网络协议深度调优
  • Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?
  • 【Linux网络】数据链路层
  • 在服务器上安装AlphaFold2遇到的问题(2)
  • #跟着若城学鸿蒙# web篇-获取定位
  • 质量管理工程师面试总结
  • React文件上传组件封装全攻略
  • React Flow 节点属性详解:类型、样式与自定义技巧
  • python打卡day27
  • 组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
  • 夜读丨什么样的前程值得把春天错过
  • 自然资源部:不动产登记累计化解遗留问题房屋2000多万套
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后
  • 工商银行杭州金融研修院原院长蒋伟被“双开”
  • 有人倒卖试运营门票?上海乐高乐园:这些票存在无法入园风险
  • 人民日报:从“轻微免罚”看涉企执法方式转变