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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python安装教程[通俗易懂]

    python安装教程[通俗易懂]python安装教程本章节我们将向大家介绍如何在本地搭建Python开发环境。Python可应用于多平台包括Linux和MacOSX。你可以通过终端窗口输入"python&

    2022年7月5日
    20
  • java多线程编程实例

    java多线程编程实例        这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下。1.相关知识:Java多线程程序设计到的知识:(1)对同一个数量进行操作(2)对同一个对象进行操作(3)回调方法使用(4)线程同步,死锁问题(5)线程通信等等2.示例2.1三个售票窗口同时出售20张票程序分析:    (1)票数要使用同一…

    2022年6月2日
    63
  • 半小时一篇文过完C语言基础知识点[通俗易懂]

    半小时一篇文过完C语言基础知识点[通俗易懂]本文定位读者为小白读者,将使用最快的方法学完C语言,并且制作一个学生管理系统。由于是速成的方法,本文不会描述过多的其它知识,大部分知识点只是描述了如何进行使用,如何深入还需要各位努力;不过学习过了一遍内容后,学习起来也会较为容易。环境:系统:windows7IDE:Devc面向读者:小白一、HelloWorldHelloWorld是经典的编程入门程序,指在编写代码生成程序,运行该程序将会在程序中显示HelloWorld。以下是一个HelloWorld的C语言代码:#include&

    2022年9月21日
    3
  • 软件测试的用例设计方法_测试用例设计

    软件测试的用例设计方法_测试用例设计1、测试用例定义测试用例又叫testcase,是为某个特殊目标而编制的一组测试输入,执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。2、测试用例的特性有效性:测试用例能够被使用,且被不同人员使用测试结果是一致的可复用性:良好的测试用例具有重复使用的功能,如:回归测试易组织性:好的测试用例会分门别类地提供给测试人员参考和使用可评估性:从测试管理的角度,测试用例的通过率和软件缺陷的数目是软件产品质量好坏的测试标准可管理性:从测试管理的角度,测试用例的通过率和软件缺陷的数目

    2022年10月12日
    4
  • 神经网络的若干关键基础理论研究_DLA深度神经网络

    神经网络的若干关键基础理论研究_DLA深度神经网络这是一篇关于神经网络算法设计的几个基本问题的理论分析的专题文章,涉及到比较多的原理推导。文章的主体来自IanGoodfellow的《DeepLearning》;AndrewNg在Coursera的《MachineLearning》课程;周志华老师的《机器学习》MichaelNielson的线上书籍:曹振华老师的《随机数学基础》。本文涉及到的概念和理论,尽可能参考自维基百科,保证所有观点的严密和权威。

    2022年8月11日
    10
  • 使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整

    使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整1.前言为了能够在Labelme上对Dicom图像进行编辑,这里对python环境下Dicom文件的读取进行了研究。在Dicom图像中CT的窗宽窗位是一个很重要的概念,但是找了半天在pydicom中没有相关设置函数,这里跟DCMTK还不一样。但是可以根据两个tag得到CT图像的CT值,那就是(0028|1052):rescaleintercept和(0028|1053):rescales…

    2022年6月26日
    142

发表回复

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

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