stm32相关知识_STM32单片机介绍

stm32相关知识_STM32单片机介绍本次教程主要介绍:HAL库配合CUBEMX配置一些常用外设的初始化,直观感受STM32编程,用最短时间入门STM32。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. STM32那些事儿

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。

命名规则:
STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
在这里插入图片描述

以上参考自百度百科 STM32词条

概括一下我没有摘录的部分,就是STM32有着各种优势,是从事嵌入式行业的朋友的好伙伴。以我作为一个电子系学生的经验,主要用到的就是F1和F4,后者较前者的区别就是多了一个FPU (Float Point Unit,浮点运算单元) 处理浮点数的速度也就会更快。

2. 硬——STM32硬件电路设计

STM32的大体情况了解完了之后,那么就是了解如何设计一块STM32的板子,虽然说,市面上的成品的开发板五花八门,实际做项目用的核心板也算价格良心。但是,仅仅只会编程可不行,最基础的硬件电路也需要我们了解。

不作复杂的要求,最基础的最小系统板,起码应该知道它的组成部分,能自己动手画一个那就更棒了!

说到单片机的最小系统,这个可以说是电子行业的常识性问题了,必须得知道。

这里以51单片机为例:那就是 单片机、电源电路、时钟电路以及复位电路。

单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器ROM和数据存储器RAM)、输入、输出接口电路(I/O接口)集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能。

复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。

时钟电路:单片机外部接上振荡器(也可以是内部振荡器)提供高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。作用是来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟。以MCS一5l单片机为例随明:MCS一51单片机为12个时钟周期执行一条指令。也就是说单片机运行一条指令,必须要用12个时钟周期。没有这个时钟,单片机就跑不起来了,也没有办法定时和进行和时间有关的操作。
时钟电路是微型计算机的心脏,它控制着计算机的二个节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。

电源电路:用于给单片机供电,一个稳定的电源是单片机正常工作的前提,因此,单片机附近经常会有电容用于滤波。
在这里插入图片描述
再附上一个STM32单片机的最小系统;在这先埋一个伏笔。
在这里插入图片描述
当然了,对于PCB绘制有兴趣的也可以参照我的这几篇博客:
Altium designer学习(一)AD画板流程总结
Altium designer学习(二)pcb库不求人——立创商城导出封装库

3. 软——STM32编程

STM32单片机的成功,和ST的软件生态也是有很大关系的。
早期的STM32编程主要以库函数(标准固件库)和寄存器两种方式进行的。库函数编程比较方便,调用ST官方提供的函数,即可完成相应功能,效率也还可以接受。寄存器方式则是直接操作STM32的相应寄存器的数据,效率极高,但是难度也很大,编程时需要查阅芯片参考手册,多用于嵌入式老手。但随着单片机性能的不断提升,对于效率又不太看重,所以,很多人基本就是选择库函数了。

后来,ST为了降低编程的门槛,推出了HAL库,Hardware Abstraction Layer(硬件抽象层),说白了就是减少硬件细节,提高移植性,降低编程门槛。又配合STM32CUBEMX软件,直接就可以初始化一个工程。大大降低编程难度,本次教程就是介绍 :HAL库配合CUBEMX配置一些常用外设的初始化,直观感受STM32编程,用最短时间入门STM32。

硬件抽象层 : 是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。

当然了,HAL库虽然简单直观,但我们也不能忽视硬件底层的学习,不能不求甚解。

4. 开始——STM32起步

照例放篇博客: https://blog.csdn.net/lalala12ll/article/details/107371982

必备软件:

  • STM32CUBEMX(配置stm32初始化工程)
  • MDK Keil(编程、调试软件)
  • 串口调试助手(调试软件)
  • 驱动软件:Jlink 、STlink 驱动(调试器) ; CH340驱动(串口通信)
    在这里推荐一个不限速下载站,电子系用到的

资料:

拓展学习:

  • RTOS操作系统:freertos、RT Thread 等等
  • STM32LL库 寄存器延伸
  • QT
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 看了这篇文章觉得MySQL读写分离这么简单「建议收藏」

    点赞多大胆,就有多大产!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言​  Mysql优化那篇文章有朋友留言说就这么点?,深深刺痛了晓添的心,感觉知识深度被小看了,痛定思痛决定发布读写分离,分表分库优化文章,其实这系列文章也在Mysql优化的计划之内,最近较忙断断续续写的有点难受,到今天才跟大家见面,篇幅有限这篇我们来说说基于Mycat实现读写分离,话不多…

    2022年4月13日
    56
  • inserted和deleted表_beingdeleted

    inserted和deleted表_beingdeletedcreatetriggerupdateDeleteTimeonuserforupdateasbeginupdateusersetUpdateTime=(getdate())from

    2022年8月4日
    5
  • 第二章《数据库的基本操作》

    第二章《数据库的基本操作》

    2021年5月28日
    93
  • lombok插件介绍「建议收藏」

    lombok插件介绍「建议收藏」Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不要再写另一个getter或equals方法,只要有一个注释,你的类就有一个功能齐全的构建器,自动记录变量等等。lombok插件大大减少了java开发的工作量,让程序员更加关注业务逻辑的实现。实现的方法举例:get/set/toString/equals/hashCode/无参构造函数/全参构造函数等。lombok插件注解@Data//data是lombok使用最多的注解,自动生成get/set/

    2022年9月7日
    0
  • matlab求解不定方程组_matlab解参数方程组

    matlab求解不定方程组_matlab解参数方程组最想说的一句话:要查matlab用法,一定要到官网去查,一些用法matlab官方是在不断更新的,现存的一些办法已经无法解决问题使用的是solve这个函数它拥有解决优化问题,解方程的功能,下面我将举一些常用的例子文章目录一、解单变量方程二、解多变量方程三、解带参数方程四、解不等式知识点总结一、解单变量方程题目:求解方程2x+1=0 2x+1=02x+1=0symsx…

    2022年9月14日
    0
  • iOS开发之duplicate symbols for architecture x86_64错误

    iOS开发之duplicate symbols for architecture x86_64错误

    2021年5月27日
    107

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号