STM32
ST:意法半导体
M:微电子
32:总线宽度
也叫MCU,单片机
单片机:一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU,随机存储器RAM,只读存储器ROM,多种I/O口和中断系统,定时器/计数器等功能(可能还包括显示驱动电路,脉宽调制电路,模拟多路转换器,A/D转换器等的电路)集成到一片硅片上构成一个小而完善的微型计算机系统,在工业控制领域应用广泛。
命名规则:
STM32F051R8T6xxx
STM32:家族
F:产品类别,A——汽车级,F——基础级,L——超低功耗,S——标准型,WB——蓝牙及802.15.4, WL——长距离无限产品,H——高性能, Q——主流型
051:特定功能(3位数字)
R:引脚数
8:闪存容量
T:封装
6:温度范围
x:固件板税
xx:选项
引脚分配:
电源IO:包括输入输出引脚INPUT\OUTPUT, VBAT, (VDDA VSSA), (VREF+ VREF-)等
晶振IO:包括主晶振IO,RTC晶振IO
下载IO:用于JTAG下载的IO,包括JTMS,JTCK,JTDI,JTDO,NJTRST
BOOT IO:用于设置系统的启动方式,包括BOOT0,BOOT1
复位IO:用于外部复位 NRST
以上组成的系统叫做最小系统
GPIO(通用输入输出引脚):
(1)专用器件连接到专用的总线,比如I2C,SPI,SDIO,FSMC,DCMI,这些总线的期间需要连接专用的IO
(2)普通元器件街道GPIO,比如蜂鸣器,LED,按键等元器件用普通的GPIO即可
(3)剩余的IO可以根据项目需要引出或者不引出
什么是寄存器
寄存器就是一个内存地址
不同的外设,在不同的地址上,根据地址就可以找到外设并使用它
寄存器编程方法:
int main(void){
volatile unsigned int * pointer=(unsigned int *)0x40028000;
//volatile unsigned int * pointer表示定义指针变量
//volatile关键字放置编译器对程序进行优化
//比如*pointer+=1;*pointer+=2会被优化成*pointer+=3;
//(unsigned int *)将0x40028000强转为地址
//0x40028000这是一个内存地址,里面保存有数据
//这条语句表明指针已经指向一个地址