A常识知识:
dsp:信号处理器
arduino:AVR加上固件库
树莓派:ARM加上linux
ARM9以下都不能架构linux系统
sopc:FPGA加上硬核
ARM核是逻辑运算器 寄存器 存储器
刘水器操作:冯若依曼架构(三级流水线) 哈佛结构:五级流水线
BGA封装工艺:贴片封装
B
大端小端模式区别 0x1234
大端:高地址0x12 低地址:0x34
小端:高地址 0x34 低地址 0x12
ARM指令集32位 THumb指令集16位
异常向量 IRQ FRQ
特殊寄器 boot 0 boot1
(1)STM32的字面含义
1.ST—意法半导体 (公司名)
2.M-(微控制器)
3.32-32bit
(2)STM32诞生的背景
1、技术的更替,这个是最主要的原因
2、市场的需求(成本、性能、功耗、GUI、操作系统),传统的8/16位的微控制器不够先进
3、ST的努力(产品线丰富、开发简单易上手—基于固件库开发),让STM32在众多的基于Cortex-M内核的微控制器中脱引而出,成为最璀璨的新星
(3)STM32的构成
STM32是一种微控制器自带各种常用通信接口
1.串口—USART:用于跟串口接口设备通信;比如:USB转串口模块、ESP8266 WIFI、GPS模块,GSM 模块,串口屏、指纹识别模块
2.内部集成电路-I2C:用于跟I2C接口的设备通信;比如:EEPROM、电容屏、陀螺仪MPU6050、0.96寸OLED模块
3.串行通信接口的设备通信;比如:串行FLASH、以太网W5500、音频模块VS1053
4. SDIO FMC(FSMCD的改进),I2S SAI ADC GPIO
(4)引脚
注: MCU:微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机
FPU:做浮点运算
T:QFP封装代表贴片封装
VREF+ VREF-参考电压
VDD VSS 数字电压
VDDA VSSA模拟电压
VBAT引脚
(五)STM32寄存器
1.辨别芯片正方向:
以图中小圆点下方第一个引脚为1脚逆时针方向旋转到最后一只脚;如果没有最小的点,以丝印正面,左上角为第1引脚逆时针旋转到最后一个引脚。
2.STM32架构图
ARM作为ip公司只做芯片设计图给ST,其中I代表指令总线 S为系统总线 D为数据总线
总线矩阵:用于仲裁总线谁先访问
3.存储器映射
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。
CORTEX—M4可以寻址4GB空间(F429只用到BLOCK0的1M空间)
序号 |
用途 |
地址范围 |
Block 0 | SRAM(FLASH) | 0x0000 0000 ~ 0x1FFF FFFF(512MB) |
Block 1 | SRAM | 0x2000 0000 ~ 0x3FFF FFFF(512MB) |
Block 2 | 片上外设 | 0x4000 0000 ~ 0x5FFF FFFF(512MB) |
Block 3 | FMC的bank1 ~ bank2 | 0x6000 0000 ~ 0x7FFF FFFF(512MB) |
Block 4 | FMC的bank3 ~ bank4 | 0x8000 0000 ~ 0x9FFF FFFF(512MB) |
Block 5 | FMC | 0xA000 0000 ~ 0xCFFF FFFF(512MB) |
Block 6 | FMC | 0xD000 0000 ~ 0xDFFF FFFF(512MB) |
Block 7 | Cortex-M4内部外设 | 0xE000 0000 ~ 0xFFFF FFFF(512MB) |
4例:让GPIOH端口的16个引脚输出高电平,要怎么实现?
1 // GPIOH 端口全部输出 高电平
2 *(unsigned int*)(0x40021C14) = 0xFFFF;//将数据强制转换成指针
给有特定功能的内存单元取一个别名,这个别名就是我们经常说的寄存器
这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射