1.STM32介绍:
ST:指的是意法半导体;
M:指定微处理器
使用的是ARMCortex-M3
ARM分成三个系列:
Cortex-A: 针对多媒体应用(手机)
Cortex-R:针对对实时性和性能有一定要求的场景
Cortex-M:针对低功耗高性能的场景
Cortex-M0,Cortex-M3,Cortex-M4
指令集:精简指令集;
不同的场景应用具体可以参考产品选型手册:
《STM8和STM32产品选型手册》
STM32命名规则:
F:通用快闪(FlashMemory)
L: 低电压(1.65v~3.6v)
F类型中的F0xx和F1xx系列为2.0~3.6v,F2xx和F4xx系列为1.8~3.6V;
2.stm32芯片内部系统
SoC:片上继承系统
stm32微控制器(SoC)
Cortex-M3:内核,执行程序代码
调试系统:供我们调试使用
外设:外部设备
时钟和复位系统:复位指的是按下复位,恢复最原始的状态,芯片正常工作必须有时钟系统;
存储器:存储,Flash,可执行代码下载到存储器,需要执行时加载到内核中;
I/O:控制输入输出的引脚,与外部设备通信
3.stm32最小系统组成
stm32f103c8t6;
(1)供电系统:
(2)时钟电路(内部时钟源,外部时钟源)
(3)复位电路
(4)下载的接口电路
(5)boot(电路)(启动电路)
VCC,GND供电,swdio,swclk下载程序
reset复位按钮 ,8MHz的外部晶振(外部时钟)
4.固件库
(1)mcu的开发方式:
开发语言:汇编语言,C语言
stm32单片机:(汇编 启动代码+C)开发只用到C;
实际开发编程过程中使用的方法:
1) 配置mcu中的某个功能模块的寄存器,进行操作;
2)使用ST官方提供的固件库驱动操作
ST官方提供了STM32cubemx 软件,图形化配置开发软件;
(2)固件库:STM32标准外设函数库,简称固件库;
特点:1)主要由功能接口,数据结构,宏等组成,涵盖了微控制器所有外设的性能特征;
2)为开发者访问底层硬件提供了统一的API;无需深入掌握硬件实现细节;
内含底层源码和启动文件
CMSIS:启动文件
STM32.......:外设驱动
inc:头文件
src:源码
CMSIS主要包含:
stm32f10x.h:实现了硬件寄存器结构,地址映射,寄存器位操作,基本类型等定义;
core_cm3.x:主要针对一些通用寄存器,中断优先级,启动模式相关的内嵌汇编操作接口
system_stm32f10x.x :系统启动初始化,尤其是系统时钟配置
startup_stm32f10x_xx.s:引导启动文件
STM32F10x_StdPeriph_Driver主要包含:
固件库驱动模块(根据需求配置)
misc.x:主要是中断初始化,分组管理相关接口,实现了用户对中断的配置功能
stm32f10x_exit.x:中断服务相关
stm32f10x_conf.h 用来统一包含当前系统要用的功能模块头文件,并实现了assert_param宏
5.keil5:
编译按钮
工程目录按钮
配置工程按钮
软件调试
(1)目录结构管理:
USER:存放自己写的代码
Libraies:存放固件库相关文件
MDK-ARM:存放相关工程
晶振改为8WHz
修改输出文件位置
定义宏
定义头文件
注意APB1和APB2的时钟不同