环境的搭建
STM32的基础知识
STM32
命名规则
时钟树
内核
ARM架构
大端模式和小端模式(选择题可能考)
哈佛结构与冯诺依曼结构
环境的搭建
我也是Win10,所以也不用USB转串口驱动
STM32的基础知识
STM32
命名规则
命名规则如图所示:我们使用的板子是STM32L071KBU
可知我们使用的芯片是:32为MCU,超低功耗(省电,一般用于蓝牙,wifi等无线方面),有32个引脚,闪存容量128,用UFQFPN封装(封装分为插件和贴片)。温度范围等以后工作可能会用哦
时钟树
时钟是CPU的心脏,是嵌入式系统的脉搏。处理器内核再时钟驱动下完成状态变换等动作,外设部件再时钟的驱动下完成串口数据的发送、ADC、定时器计数等工作
STM32L0系列新增MSI内部的多频率可选时钟源,代码配置方面基于HAL库。(datasheet-数据手册)
时钟树图如下:
LSI RC,低速内部时钟(RC振荡器(适用于低频振荡,一般用于产生1Hz~1MHz的低频信号)),是看门狗(WatchdogLS)的时钟源
注:看门狗用于定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。
LSE OSC,外部低速时钟(晶振:可以产生高度稳定的信),输入输出引脚接OSC32_IN、OC32_OUT可以作为实时时钟和主时钟输出(MOC)的时钟源。精度高于内部低速时钟。
注:MOC:时钟输出引脚,可以选择相应的时钟源输出对应的时钟频率。
MSI RC,是STM32L系列(低功耗)独有的时钟,可提供12种频率的时钟源,范围:100kHz~48MHz。可以直接选择为系统时钟和AHB时钟(高级高性能系统总线),也可以作为MOC的时钟源。MSI为低功耗模式提供了更多选择,但精度不高。
注:官方提供的历程多以MSI作为时钟源
HSI,内部高速时钟(RC振荡器),可以直接选择为系统时钟,可以作为PLL(锁相环倍频输出)的时钟源,经倍频后选择作为系统的System Clock(系统时钟)和AHB时钟。
还可以作为ADCCLK时钟源
HSE,外部高速时钟(晶振),输入输出引脚接OSC_IN、OCS_OUT,可以直接选择为系统时钟,可以作为PLL源,经倍频后作为系统的(系统时钟)和AHB时钟。话可以作为MCO和RTC时钟源
注:STM32的CPU有一个RTC引脚,用于连接电池
System Clock,系统时钟,是供STM32中大部分部件工作的时钟源,是其他所有外设的时钟来源。System Clock通过AHB分频器分频后送给各模块使用。
同时还是CK_PWR和MCO的时钟源。
注:分频器是指使输出信号频率为输入信号频率整数分之一的电子电路
HCLK,高速外设时钟,是AHB总线时钟源,系统时钟经AHB预分频得到。供内存和DMA等使用。
FCLK为自由震荡处理器时钟,用来保证在休眠时采样到中断和跟踪休眠事件,与HCLK时钟源相同。
参考函数:https://blog.csdn.net/m0_59766260/article/details/119575090
内核
功能与接口的具体实现流程就是芯片的核心,也就是内核。
STM32芯片大多采用arm架构下的cortex-M系列内核来具体执行和实现芯片功能
ARM架构
ARM高级精简指令集处理器,简称ARM架构
CPU架构 | 代表芯片 | 指令集架构 | 功能 |
ARM | ARM | RISC指令集 | 主要用于移动,嵌入式领域; 逻辑门少,发热低,功耗低; 搭配哈佛储存结构使用 |
X86 | intel、AMD | CISI指令集 | 主要用在电脑的CPU上,性能高,速度快; 搭配冯诺依曼存储结构使用 |
RISC指令集:精简指令运算集
CISI指令集:复杂指令运算集
ARM内核分为三类:
cortex-A、cortex-R、cortex-M消费由高到低
大端模式和小端模式(选择题可能考)
cortex-M为32位处理器内核,支持小端模式(常用)和大端模式;有些指令只使用小端模式且不可更改
例子中共32个数据,从1-8分别代表数据由低位到高位,每两个数字如12存储8个数据
哈佛结构与冯诺依曼结构
哈佛结构:指令寄存器和数据寄存器存放在不同内存里,需要分别寻址CPU结构;代码编译后相当于指令,这些指令通常会固定存放在单片机的rom寄存器里,使用指令总线来顺序寻址指令寄存器;相当于指令寄存器全部划分在一块固定的区域,指令总线和数据总线同时操作该区域的指令寄存器。
冯诺依曼结构:指令寄存器和数据寄存器放在相同内存里,不需要分别寻址的CPU结构。指令寄存器的存储区域和数据寄存器的存储区域混在一起,也就是说指令总线和地址总线是相同的总线,需要分时复用。
参考:软件环境搭建
本文章发表仅用于学习交流,抛砖引玉,如有问题,欢迎指点
我愿用我王者十连跪换蓝桥杯的任意奖项,二十连跪也行!!!!!!!!