百问7天物联网智能家居实战训练营基础班 ——STM32结构和单片机相关知识

一款新芯片的上手思路
去芯片原厂官网,下载资料:《数据手册》,《参考手册》

下载公板或者其它开发板配套资料:《原理图》

根据 《原理图》 分析最小系统

根据示例程序和《参考手册》编写程序
最小系统用最少的电路组成单片机可以工作的系统。

最小系统包含:电源电路,时钟电路,复位电路,调试/下载电路

  • 怎么仿真单步调试:

需要 JTAG(Joint Test Action Group)调试接口或者 SWD(Serial Wire Debug)调试接口

  •  串口自动下载电路涉及BOOT启动选择

       1.  MCU正常启动 : BOOT0和BOOT1引脚都为低电平

       2. 串口下载模式( In System Programing, ISP):BOOT0引脚为高电平 ,BOOT1引脚为低电平
对于 STM 32 还需要启动选择电路STM32 结构
在编程之前,对STM32的总线结构、存储结构、外设寄存器等有个大致了解,有助于理解编程中的一些
操作。此外,中断与异常( Nested Vectored Interrupt Controller, NVIC)、 时钟复位( Reset and Clock, RCC)也很重要,且与编程紧密相关

● 掌握一款MCU的开发需要重点关注四大模块:时钟复位、中断异常、存储映射和外设寄存器组。

STM32 总线结构
● 总线( Bus)是各种信号线的集合,是嵌入式系统中各部件之间传输数据信息、地址信息和控制信息的公共通道。

STM32 存储结构
       CPU通过总线访问各个外设,现在通往外设的“路”已经铺好,还需要规定各个外设的“门牌号”,以便精准控制每个外设。
       ARM Cortex-M3系列的处理器,采用存储器与I/O设备(外设)统一编址的方式,将部分存储器地址范围用于外设,这种通过存储器地址访问外设的方式,称为存储器地址映射。对于32位的处理器,可寻址的范围为232字节,即232 = 4 × 1024 × 1024 × 1024 = 4𝐺B,也就是
0x00000000至0xFFFFFFFF。 ARM将这4G空间从低地址到高地址依次划分为代码区( Code)、 片上SRAM区( SRAM)、片上外设( Peripheral) 、片外RAM( External RAM)、片外外设( External Device)和系统级( System level) ,如下图所示:

● STM32在ARM规定的基础上,将4G空间分为了Block0、 Block1、 Block2、……、 Block7,共8块,每块大小为512MB, 如下表所示

● 存储器映射结构如下图所示。

①0x0000 0000 ~ 0x1FFF FFFF(512MB):作为代码区,用于存放下载的代码。系统上电后,将从该部分读取代码;
②0x2000 0000 ~ 0x3FFF FFFF(512MB):作为SRAM区,用于存放运行代码。系统上电后,将从Flash读取代码,放到SRAM里, CPU再从SRAM读取代码运行;
③0x4000 0000 ~ 0x5FFF FFFF(512MB):作为片上外设区,用于存放厂商外设寄存器。要操作外设,即修改这里对应的外设寄存器;注意这里的RCC和Port B外设的地址范围,后面很快就会用到;
④0x6000 0000 ~ 0x9FFF FFFF(1GB):作为片外RAM,用于扩展RAM。当SRAM或者Flash不够用时,MCU通过FSMC外接其它IC芯片,则在这个地址范围读写IC芯片数据;
⑤0xA000 0000 ~ 0xDFFF FFFF(1GB):作为片外外设区,用于读写扩展IC芯片的寄存器。 ST只用了这里的一半空间,另外一空间未使用;
⑥0xE000 0000 ~ 0xFFFF FFFF(512MB):作为内核外设区,用于存放Cortex-M3内核的内部外设。 CortexM3内核的内部外设有NVIC、 Systick等;在Block0、 Block1圈出的三个范围,分别对应前面介绍的三个启动模式。当从主存储器启动,则是从Flash启动;当从系统存储器启动,则是从System memory启动;当从SARM启动,则是从SRAM启动。对于开发人员,通常就是对Block2的片上外设寄存器进行读写操作,以控制外设资源,实现所需效果。
STM32 寄存器
寄存器是用来存储二进制数据的时序逻辑电路,由众多晶体管组成 。
单片机开发方式有:1.操作寄存器(汇编操作寄存器,C语言操作寄存器),2.使用库开发(标准库,HAL库)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值