STM32-01-认识单片机

文章目录

  • 一、单片机简介
  • 二、Cortex-M系列介绍
  • 三、初识STM32
  • 四、STM32原理图设计
  • 五、搭建开发环境
  • 六、STM32初体验
  • 七、MDK5使用技巧

一、单片机简介

  • 单片机是什么?

    单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片。

    下面是电脑与单片机的对应关系:

    在这里插入图片描述

  • 单片机的特点?

    • 体积小:<5mmx5mm
    • 功耗低:mA级
    • 集成度高:IO、TIM、AD、DA
    • 使用方便:C、Debug
    • 拓展灵活:IIC、SPI、FSMC
  • 单片机有什么用?

    • 仪器仪表:电源、示波器、焊台
    • 家用电器:空调、冰箱、洗衣机
    • 工业控制:机器人、PLC、电梯
    • 汽车电子:GPS、ABS、胎压监测
  • 单片机发展历程?

    在这里插入图片描述

  • 了解两种指令集?

    对比项复杂指令集计算机(CISC)精简指令集计算机(RISC)
    目的为了便于编程和提高存储器访问效率为了提高处理器运行速度
    指令特点1,指令多,模式多,格式可变
    2,指令的执行需要的时钟周期差距很大
    3,无流水线或流水线程度较低
    4,指令由微代码翻译执行
    1,指令少,模式少,格式固定
    2,大多数指令只需1个时钟周期
    3,流水线结构
    4,指令直接由硬件执行
    优点1,指令丰富、功能强大
    2,寻址方式灵活
    1,指令精简,易于设计,使用率均衡
    2,程序执行效率高
    缺点1,指令使用率不均衡
    2,不利于采用先进结构提高性能
    3,结构复杂不利于超大规模集成电路实现
    1,指令数较少,功能不及CISC强大
    2,寻址方式不够灵活

    使用CISC和RISC举例

    在这里插入图片描述

  • 冯诺依曼结构和哈弗结构的区别?

    在这里插入图片描述

    冯诺依曼结构的优点是占用的资源少,哈弗结构的优点是执行效率较高。

二、Cortex-M系列介绍

  • ARM公司:只做内核设计和IP授权,不参与芯片设计。
    在这里插入图片描述

  • ARM架构为什么能风靡全球?

    1. 低功耗、低成本、高性能
    2. 支持16/32位双指令集
    3. 拥有众多合作伙伴
  • Cortex内核分类及特征?

    对比项Cortex-A
    (Application)
    Cortex-R
    (Real-time)
    Cortex-M
    (Microcontroller)
    特点高时钟频率,长流水线,高性能较高时钟频率,较长的流水线,实时性强时钟频率较低,通常较短的流水线,超低功耗
    应用场景移动计算、智能手机、平板电脑、数字电视军工、汽车电子、无线基带、硬盘控制器工控、传感器、消费电子、家用电器、医疗器械

三、初识STM32

  • STM32是什么?

    ST:意法半导体, M:MCU/MPU,32:32位

    在这里插入图片描述

  • STM32命名规则?

    在这里插入图片描述

四、STM32原理图设计

  • 芯片的基本参数(STM32F103ZET6)

    参数范围
    主频72MHz
    FLASH512KB
    SRAM64KB
    工作电压2.0~3.6V
    最大电流150mA
    IO引脚接入电压范围COMS端口:-0.3V ~ 3.6V 兼容5V端口:-0.3V ~ 5.5V
    单个IO引脚最大电流25mA
  • STM32F103ZET6引脚分布

    在这里插入图片描述

    STM32引脚类型:电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚。

  • 单片机最小系统?

    最小系统:保证MCU正常工作的最小电路组成单元

在这里插入图片描述

  • 电源电路

    在这里插入图片描述

  • 复位电路

在这里插入图片描述

  • BOOT启动电路

    在这里插入图片描述

  • 晶振电路

    在这里插入图片描述

  • 下载调试电路

    在这里插入图片描述

五、搭建开发环境

  • 常用开发工具

    工具名称所属公司说明
    集成开发环境(IDE)MDKKeilSTM32最常用的集成开发环境,简单易用
    EWARMIAR支持STM32开发,用的人少一些
    仿真器DAPARM开源、免驱、带虚拟串口功能、速度快、廉价
    STLINKST支持全面、稳定、廉价
    JLINKSegger稳定、高速、价格贵
    串口调试助手XCOM正点原子功能多、稳定、简单易用
    SSCOM丁丁稳定、小巧、简单易用
  • STM32串口和电脑USB通信示意图?

    在这里插入图片描述

六、STM32初体验

  • MDK5编译例程

    使用MDK5编译例程,在Program Size里面有四种数据类型,Code、 RO-Data、RW-Data、ZI-Data

    数据类型占用Flash or SRAM说明
    CodeFlash代码
    RO-DataFlash只读数据,一般是指 const 修饰的数据
    RW-DataFlash and SRAM初值为 非 0 的可读可写数据
    ZI-DataSRAM初值为 0 的可读可写数据
  • DAP下载

    • 电路连接

      在这里插入图片描述

    • 硬件连接

      在这里插入图片描述

    • 软件配置

      配置ST-Link
      在这里插入图片描述

      设置下载算法

      在这里插入图片描述

    • 开始调试

      在这里插入图片描述

    1. 复位:其功能等同于硬件上按复位按钮。相当于实现了一次硬复位。按下该按钮之后,代码会重新从头开始执行。
    2. 执行到断点处:该按钮用来快速执行到断点处,有时候你并不需要观看每步是怎么执行的,而是想快速的执行到程序的某个地方看结果,这个按钮就可以实现这样的功能,前提是你在查看的地方设置了断点。
    3. 停止运行:此按钮在程序一直运行的时候会变为有效,通过按该按钮,就可以使程序停止下来,进入到单步调试状态。
    4. 执行进去:该按钮用来实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的。
    5. 执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不是进入这个函数单步执行。
    6. 执行出去:该按钮是在进入了函数单步调试的时候,有时候可能不必再执行该函数的剩余部分了,通过该按钮就可以一步执行完该函数的剩余部分,并跳出函数,回到函数被调用的地方。
    7. 执行到光标处:该按钮可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的。断点可以有多个,但是光标所在处只有一个。
    8. 反汇编窗口:通过该按钮,就可以查看汇编代码,可以用来分析程序。
    9. Call Stack窗口:通过该按钮,显示调用关系和局部变量窗口,显示当前函数的调用关系和局部变量,方便查看,对分析程序非常有用。
    10. 观察窗口:MDK5提供了2个观察窗口,该按钮按下,会弹出一个显示变量的窗口,输入你所想要观察的变量/表达式,即可查看其值,是很常用的一个调试窗口。
    11. 内存查看窗口:MDK5提供4个内存查看窗口,该按钮按下,会弹出一个内存查看窗口,可以再里面输入你要查看的内存地址,然后观察这一片内存的变化情况。是很好用的调试窗口。
    12. 串口打印窗口:MDK5提供4个串口打印窗口,该按钮按下,会弹出一个类似串口调试助手界面的窗口,用来显示从串口打印出来的内容。
    13. 系统分析窗口:图标下面有6个选项,我们一般用第一个,也就是逻辑分析窗口(Logic Analyzer),点击即可调出该窗口,通过SETUP按钮新建一些IO口,就可以观察这些IO口的电平变化情况,以多种形式显示出来,比较直观。
    14. 系统查看窗口:该按钮可以提供各种外设寄存器的查看窗口,选择对应外设,即可调出该外设的相关寄存器表,并显示这些寄存器的值,方便查看设置的是否正确。
    • Call Stack窗口:查看函数调用关系或局部变量

      在这里插入图片描述

    • Watch窗口:查看函数首地址或变量值

      在这里插入图片描述

    • Memory窗口:内存查看窗口

      在这里插入图片描述

      M3/M4/M7内核是小端模式,内存的值得倒着读

      • Peripheral窗口:查看寄存器的值

        在这里插入图片描述

    • 注意事项

      1. 仿真时,使用MDK的Level 0等级优化

        在这里插入图片描述

      2. 调试停止在断点处时,只是内核停止,外设会继续运行

      3. 断点的设置要有时间观念,考虑是否会打断正常通信

七、MDK5使用技巧

  • 编辑器设置

    在这里插入图片描述

  • 字体和颜色设置

    在这里插入图片描述

  • 用户关键字设置

    在这里插入图片描述

  • 代码提示/语法检查

    在这里插入图片描述

  • 快速定位函数或变量被定义的地方

    在这里插入图片描述

声明:参考文献来源: 战舰STM32F103ZET6开发板资源包

  1. Cortex-M3权威指南(中文).pdf
  2. STM32F10xxx参考手册_V10(中文版).pdf
  3. STM32F103 战舰开发指南V1.3.pdf
  4. STM32F103ZET6(中文版).pdf
  5. 战舰V4 硬件参考手册_V1.0.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang channle(管道)基本介绍、快速入门

channel(管道)-基本介绍 为什么需要channel&#xff1f;前面使用全局变量加锁同步来解决goroutine的通讯&#xff0c;但不完美 1)主线程在等待所有goroutine全部完成的时间很难确定&#xff0c;我们这里设置10秒&#xff0c;仅仅是估算。 2)如果主线程休眠时间长了&#xff0c…

【计算机网络】HTTP响应报文Cookie原理

目录 HTTP响应报文格式 一. 状态行 状态码与状态码描述 二. 响应头 Cookie原理 一. 前因 二. Cookie的状态管理 结束语 HTTP响应报文格式 HTTP响应报文分为四部分 状态行&#xff1a;包含三部分&#xff1a;协议版本&#xff0c;状态码&#xff0c;状态码描述响应头&a…

如何选择LED天幕屏的型号

随着LED屏幕技术的不断成熟&#xff0c;其应用范围也日益扩大&#xff0c;从传统的墙面固定安装&#xff0c;到落地式、租赁移动式&#xff0c;再到LED互动地砖屏和安装在天花板上的LED天幕屏等&#xff0c;安装方式多种多样。那么&#xff0c;在面对如此多元化的选择时&#x…

PHP基础 - 类型比较

在 PHP 中,作为一种弱类型语言,它提供了松散比较和严格比较两种方式来比较变量的值和类型。 松散比较: 使用两个等号(==)进行比较,只会比较变量的值,而不会考虑它们的数据类型。例如: $a = 5; // 整数 $b = 5; // 字符串if ($a == $b) {echo "相等"; // 输…

C/C++ 编程规范总结

目录 前言 一、编程规范的作用 二、规范的三种形式 三、规范的内容 1. 基本原则 原则1-1 原则1-2 原则1-3 原则1-4 原则1-5 原则1-6 原则1-7 2. 布局 规则2-1-1 规则2-1-2 规则2-1-3 规则2-1-4 规则2-1-5 规则2-1-6 规则2-2-1 规则2-2-2 规则2-2-3 建议2…

简单聊聊使用lombok 的争议

大家好&#xff0c;我是G探险者。 项目里&#xff0c;因为我使用了Lombok插件&#xff0c;然后代码走查的时候被领导点名了。 我心想&#xff0c;这么好用的插件&#xff0c;为啥不推广呢&#xff0c;整天写那些烦人的setter&#xff0c;getter方法就不嫌烦么&#xff1f; 领导…

AidLux:手机/平板上的Linux环境与AI开发利器

AidLux是一个基于ARM架构的跨生态&#xff08;鸿蒙/AndroidLinux&#xff09;一站式智能物联网&#xff08;AIoT&#xff09;应用开发和部署平台&#xff0c;正受到越来越多开发者和用户的青睐。既可以作为手机/平板上的一个Linux环境使用&#xff0c;也可以作为AI开发利器以发…

Python Django Suit:构建现代化的Django后台管理

概要 Django Suit是一款为Django后台管理提供现代、优雅界面的第三方应用&#xff0c;它致力于提升Django开发者的管理体验。本文将深入介绍Django Suit的安装、配置和高级功能&#xff0c;提供详实的示例代码&#xff0c;帮助大家更好地使用和定制Django后台管理界面。 安装与…

无法解除Word文档限制编辑?上干货

方法一&#xff1a;新建一个文档-点击“插入”-点击“对象”-点击选择中的倒三角-然后选择“文件中的文字”-找到相应文档即可 具体操作界面如下图这个方法会导致格式出现稍稍微的变化 方法二&#xff1a;将受编辑的文件另存为 文件类型一定要选择*.xml 另存好之后是这样的 打…

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.参考…

[C++] STL_priority_queue(优先级队列) 的使用及底层的模拟实现,容器适配器,deque的原理介绍

文章目录 1、priority_queue1.1 priority_queue的介绍和使用1.2 priority_queue的使用模拟实现&#xff1a; 2、容器适配器2.1 什么是适配器2.2 STL标准库中stack和queue的底层结构 3、deque3.1 deque的原理介绍3.2 deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容…

docker配置连接harbor私有仓库

一、前言 以下分为两种情况说明docker对harbor私有仓库的访问配置&#xff0c;一种是harbor使用自建证书配置https&#xff0c;一种是使用公有证书配置https 二、docker配置 harbor使用自建证书的情况 使用自建证书对harbor进行https配置&#xff0c;docker会将该仓库识别成不…

SDXL使用animateDiff和hotshot-xl进行文生视频

截至2023.12.8号&#xff0c;目前市面上有两款适用于SDXL的文生视频开源工具&#xff0c;分别是AnimateDiff和hotshot-xl。 一、工具下载链接 &#xff08;1&#xff09;AnimateDiff的webui版本的git链接&#xff1a; GitHub - continue-revolution/sd-webui-animatediff: A…

Postman获取token

问题描述 登录接口中带有token参数&#xff0c;其他接口需要带上token才能正确访问&#xff0c;利用接口查询用户信息时手动在headers中更新token信息并不方便。 解决方案 在登录接口中设置一个名为“token”的环境变量&#xff0c;value为登录接口跑通之后responseBody中返回…

51单片机的独立按键与矩阵按键的使用以及实例分析

IO 的使用–按键 本文主要涉及8051单片机的按键的使用&#xff0c;包括独立按键与矩阵按键。 其中包括实例分析&#xff1a; 独立按键 K1 控制 D1 指示灯亮灭通过数码管显示矩阵按键 S1-S16 按下后键值 0-F 文章目录 IO 的使用--按键一、按键消抖二、独立按键独立按键 K1 控制 …

IAR嵌入式解决方案发布全新版本,增强云调试和仿真功能,推动下一代嵌入式软件开发

通过先进的Arm虚拟硬件集成和Linux系统中增强的基于云的协作&#xff0c;赋能下一代嵌入式软件开发 瑞典乌普萨拉&#xff0c;2023年12月7日 - 嵌入式开发软件和服务的全球领导者IAR宣布推出旗舰产品IAR Embedded Workbench for Arm及IAR Build Tools for Arm最新9.50版本。此…

vue2+datav可视化数据大屏(3)

接上一节所说&#xff0c;当我们将接口封装完了后&#xff0c;我们需要给大屏进行内容填充啦 1,新建组件 &#x1f4d3; 我们在ser-views文件夹下新建9个vue组件&#xff0c;如下图所示&#xff0c;我给编号为1到9 &#x1f4d3;在组件里写入内容我是第一块...一次类推&#x…

AOSP开机动画调测技术点(基于Android13)

AOSP开机动画调测技术点(基于Android13) 开机动画替换 首先&#xff0c;在你的计算机上创建一个名为"bootanimation"的文件夹&#xff0c;并将"part0"、"part1"和"desc.txt"这三个文件复制到该文件夹中。这些文件包含了开机动画的图像…

基于深度学习的超分辨率图像技术一览

超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率&#xff0c;图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题&#xff0c;在医疗图像分析、生物特征识别、视频监控与安全等实际场景中有着广泛的应用。 SR取得了显著进步。一般可以将现有…

小机器人,电子锁,牙刷,表类开关,磁阀开关等一些安防直流驱动的选型介绍分析 5V,大电流,小封装

安防监控是一门被人们日益重视的新兴行业&#xff0c;就目前发展来看&#xff0c;应用普及程度越来越广&#xff0c;科技含量也越来越高&#xff0c;几乎所有高新科技都可促进其发展&#xff0c;尤其是信息时代的来临&#xff0c;更为该行业的发展提供契机。其中安防领域最为典…