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

STM32 认识STM32

 

目录

什么是嵌入式?

认识STM32单片机 

开发环境安装

安装开发环境

开发板资源介绍

单片机开发模式 

创建工程的方式

烧录STM32程序


什么是嵌入式?

1.智能手环项目

                  

主要功能有:

彩色触摸屏 显示时间 健康信息:心率,心跳,血氧等 闹钟 记录跑步数据 NFC刷公交,地铁,门禁 蓝牙连接手机接收信息等等  

智能手环整体框图设计:

2.智能门禁项目

                   

主要功能有: 显示屏 RDIF开锁开锁 指纹开锁 按键密码开锁 人脸识别开锁等功能

智能门禁整体功能框图:

认识STM32单片机 

STM32是单片机,它由意法半导体制造。ST是意法半导体的简称,M指的是微控制器,也 就是MCU的第一个英文。32指的是32位的CPU,32是指32位的CPU,它的CPU是采用 ARM公司的Cortex-m系列的内核设计。 学习STM32单片机可以访问两个官网,一个是意法半导体官网和STM32系列单片机的官 网,其中Cortex-M后面的数字越大性能越好。

以STM32F103C8T6为例:

        stm32是家族名,还有stm8,32和8的区别就是CPU处理数据的位数不一样,而且32采 用的是ARM公司的Cortex-M系列的内核,8是意法半导体自主研发的CPU内核。  

        F指的是产品类别,它是属于基础型,还有汽车A级,超低功耗L等类型。

        103这三个数字是指特点的功能,它指STM32的基础型,还有051入门级等等。

        C指的是STM32的引脚数量,不同的大写字母代表的不同的引脚数,C代表48引脚。

        8是指STM32的闪存(flash)大小,也就是放代码空间的大小,8指闪存大小是 64KB。

        T指的是芯片的封装形式QFP。

        6指的是芯片的工作环境的温度-40°到+85°。

开发环境安装

安装开发环境

1.安装MDK(keil)

Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。     目前软件对中文的支持不友好,不建议安装网上的一些汉化包之类的。另外建立的工程文件路径也尽量不要存在中文,否则可能会出现一些异常。

2.安装芯片包stm32f1xx

开发板资源介绍

1.原理图

用来表示电路板上各个元器件直接的连接原理的图表不同设计人员表示的方法有差异,没有统一的标准

在产品调试,维修以及改进过程中有着不可或缺的作用

 2.网络连接的表达方式

用连线表示两个器件有连接

用网络标号来表示两根期间有连接

单片机开发模式 

1.单片机开发模式

1.汇编操作寄存器。执行效率高。编写难度大,移植性差。

2.使用C语言操作寄存器。 执行效率适中。编写效率低,移植性差。

3.使用库开发

        标准库,执行效率稍低,但是编写效率高,移植性稍高

        标准库是ST公司最早发布的固件库,对STM32芯片进行了完整的封装,覆盖了对应的外设的所有功能。它的缺点就是,它是针对某款STM32型号设计的,可移植性差,例如,F1系列的库和F4系列的库是不同的,但是在F1系列中还是可以通用的。

        HAL库,执行效率稍低,但是编写效率高,移植性好

        HAL库是近几年官方极力推荐的库,覆盖了全系列的芯片,可以说HAL库就是用来取代标准库的,相对标准库,HAL库有着更高的抽象、整合水平,它的API更多的集中关注在外设的公共函数功能,HAL库的移植性好,它在STM32中的通用性很强。

创建工程的方式

创建工程方式有两种:使用Keil创建工程模板、 使用STM32CubeMX新建一个工程

1.新建一个文件,添加文件:

        DOC工程说明

                doc说明文档(里面写这个工程是用来干什么的)

        Libraries固件库

                cmsis内核文件(放一些内核文件,没有他们芯片就工作不起来)

                FWLIB外设文件(分为.c文件:翻译行数的定义和.h文件:每个.c文件对应有一个.h文件是放行数的声明)

                start_up启动文件(放一些单片机启动的代码,在内核文件里不同的后缀表示不同芯片的闪存的大小)

        Project工程文件

                keil工程

        User应用程序(指的是我们的代码要实现那些功能)

                应用程序

新建工程

打开keil5,projecr,第一个,放在桌面上面的project的project,选择芯片:F103C8

2.Keil里面新建文件

        START_UP 启动文件

        USER 应用程序

        CMSIS 内核配置相关文件

        DOC 说明文档

        FWLIB 外设相关配置

右键keil里的Target1:add group(或者点击红色绿色白色小方格:在中间一栏操作)

keil对应的文件夹里面放入电脑里的文件,双击文件或小方块右侧一列也可以

        START_UP:在Libraries:cmsis:start_up:hd.s

        USER:在 User:添加.c文件里面包含.h文件

        CMSIS:在Libraries:CMSIS:.c文件

        DOC:DOC

        FWLIB:Libraries:src:ctrl+a全选.c文件

然后点魔术棒:c/c++:includepaths里面的.h文件

缺少USE_STDPERIPH_DRIVER.h文件,需要在魔术棒中宏定义:c/c++

烧录STM32程序

1.配置keil生产hex文件(点击魔术棒,output,勾选create hex file,全局编译成功就会自动生产hex文件,生产在project:Object),要把hex文件烧录进去

2.使用flymcu串口烧录(为什么用串口烧录?我们如果烧录必须通过串口烧录,得外接一个串口芯片,如果要用串口芯片,首先得让它工作起来,所以要安装一个串口驱动)

        首先安装串口驱动

 3.使用jlink、stlink烧录工具在线烧录        

        安装stlink/jlink驱动

        3.3v-3.3v

        gnd-gnd

        SWDIO-SWDIO

        SWCLK-SWCLK

         配置魔术棒勾选然后烧录:Debug:选择烧录方式,LOAD标志

        

相关文章:

  • 【AI飞】AutoIT入门一:AutoIT来了,准备让AI动起来
  • 数据库实战篇,SQL在Kooboo中的实际应用(一)
  • Epplus 8+ 许可证设置
  • ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)
  • 【NLP】25.python实现点积注意力,加性注意力,Decoder(解码器)与 Attention
  • 六、adb通过Wifi连接
  • cut命令:剪切
  • LeetCode[18]四数之和
  • 江顺科技应收账款期后回款比率大降:现金流急剧减少,研发费用率下滑
  • Unity中计算闭合路径内部的所有点位
  • Kubenetes-基于kubespray 部署集群
  • 鸿蒙开发-编译器使用
  • 如何 在 Cesium 中选取特定经纬度区域,特定视角 ,渲染成图片
  • 什么叫“架构”
  • 交通运输部4项网络与数据安全标准发布
  • Bash脚本编写基础指南
  • 对接印度尼西亚股票数据源API
  • Linux ELF文件格式
  • 【笔记ing】AI大模型-03深度学习基础理论
  • 深入剖析C++中 String 类的模拟实现
  • 浙江桐乡征集涉企行政执法问题线索,含乱收费、乱罚款、乱检查等
  • 外交部:中企在中韩暂定水域建立渔业养殖设施不违反中韩有关协定
  • 中国在建结构第一高楼“天津117大厦”将复工,预计2027年完工
  • 山西一国道发生塌陷,造成4车追尾2人死亡
  • 石黑一雄《莫失莫忘》与“克隆人”:殖民地的记忆与行动
  • 杜甫、韦应物背后的世家大族,在这个展览上一览传奇