stm32f103zet6库函数工程
支持编译软件IAR
大部分外设提供了直接API函数
全部源码资料51hei下载地址:
STM32F103VET6 -new.7z
(1.25 MB, 下载次数: 18)
1 文件夹命名规则
----------------------------------------------------------------------------------------------------
APP 应用程序文件夹
BRD 板载设备驱动与使用文件夹
CPU 微控制器相关文件夹
CPU-CFF 微控制器内存等配置文件夹
CPU-STP 微控制器启动代码文件夹
ELS 其他代码文件夹
FUC 通用自定义代码文件夹,算法,流程等
GEN 通用标准代码文件夹
PRJ 工程文件夹
PRJ-EXE IAR工程输出可执行文件文件夹
PRJ-OBJ 工程输出文件文件夹
PRJ-LST 工程输出链表文件夹
SYS 操作系统文件夹
----------------------------------------------------------------------------------------------------
2 数据类型取值范围
----------------------------------------------------------------------------------------------------
类型 16位系统/字节 32位系统/字节 64位系统/字节
---------------------------------------------------------
char 1 1 1
---------------------------------------------------------
char* 2 4 8
---------------------------------------------------------
short 2 2 2
---------------------------------------------------------
int 2 4 4
---------------------------------------------------------
long 4 4 8
---------------------------------------------------------
long long 8 8 8
---------------------------------------------------------
注意:long long是标准的8 bytes,不受编译器限制
----------------------------------------------------------------------------------------------------
3 STM32的GPIO工作模式
----------------------------------------------------------------------------------------------------
GPIO_Mode_AIN = 0x00, 模拟输入,应用ADC模拟输入,或者低功耗下省电;
GPIO_Mode_IN_FLOATING = 0x04, 输入浮空,IO的电平状态是不确定的,完全由外部输入决定;
GPIO_Mode_IPD = 0x28, 输入下拉,IO内部上拉电阻输入,悬空时,处于高电平状态;
GPIO_Mode_IPU = 0x48, 输入上拉,IO内部下拉电阻输入,悬空时,处于低电平状态;
GPIO_Mode_Out_OD = 0x14, 开漏输出,IO输出0--接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。
当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。
可以读IO输入电平变化,实现C51的IO双向功能
GPIO_Mode_Out_PP = 0x10, 推挽式输出,IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的。
GPIO_Mode_AF_OD = 0x1C, 开漏复用 输出,片内外设功能(I2C的SCL,SDA)
GPIO_Mode_AF_PP = 0x18, 推挽式复用 输出,片内外设功能(TX1,MOSI,MISO.SCK.SS)
----------------------------------------------------------------------------------------------------
4 STM32的启动模式 BOOT0 和BOOT1
----------------------------------------------------------------------------------------------------
1、BOOT1=x BOOT0=0 从用户闪存(FLASH)启动,这是正常的工作模式。
2、BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
芯片内部一块特定区域,芯片出厂时,预置了一段Bootloader,也就是通常ISP程序
该区域出厂后不能修改或擦除,本质为1个ROM区域
3、BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
----------------------------------------------------------------------------------------------------
5 STM32的启动文件选择
----------------------------------------------------------------------------------------------------
STM32F10X_LD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范围16 ~ 32 Kbytes
STM32F10X_LD_VL —— STM32F100xx FLASH范围16 ~ 32 Kbytes
STM32F10X_MD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范围64 ~ 128Kbytes
STM32F10X_MD_VL —— STM32F100xx FLASH范围64 ~ 128Kbytes
STM32F10X_HD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范围256~ 512Kbytes
STM32F10X_HD_VL —— STM32F100xx FLASH范围256~ 512Kbytes
STM32F10X_XL —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范围512~1024Kbytes
STM32F10X_CL —— STM32F105xx、STM32F107xx(互联型的器件)
互联型的器件特点:BootLoader有18KB,能通过USAT1、4、CAN等多种方式进行ISP。
----------------------------------------------------------------------------------------------------
6 STM32F103系列命名规则
----------------------------------------------------------------------------------------------------
第1部分: STM32 - 产品系列名称
第2部分: F - Flash产品,没有其他选项
第3部分: 103 - 增强型产品,
101 - 基本型产品
第4部分: 管脚数目
T - 36引脚
C - 48引脚
R - 64引脚
V -100引脚
Z -144引脚
第5部分: 内存存储器容量(Flash)
6 - 32字节
8 - 64字节
B - 128字节
C - 256字节
D - 384字节
E - 512字节
G -1024字节
第6部分: 封装信息
H - BGA
T - LQFP
Y - WLCSP64
第7部分: 工作温度范围
6 - 工业级 -40℃~ +85℃
7 - 工业级 -40℃~ +105℃
----------------------------------------------------------------------------------------------------
7 名词解释
----------------------------------------------------------------------------------------------------
RAM (random access memory) - 随机存储器
SRAM(static random access memory) - 静态随机存储器,不需要刷新电路,缺点集成度低,不适合做容量大内存
DRAM(dynamic random access memory)- 动态随机存储器,需要隔一段时间刷新一次数据
ROM (read only memory) - 只读存储器,较早年代使用
PROM - 可编程只读存储器,只能写一次
EPROM - 通过紫外线照射来擦除数据
EEPROM - 电可擦除可编程只读存储器,通过电来擦除数据
Flash - 非易失性闪存,现在流行使用
NAND FLASH - 并行接口,集成度高,容量大,成本低,运行速度慢
NOR FLASH - 并行接口,集成度低,容量小,成本高,运行速度快
----------------------------------------------------------------------------------------------------
8 下载接口说明
----------------------------------------------------------------------------------------------------
下载接口,尽量不要使用,需要对其引脚进行功能复用
PA13 - JTMS
PA14 - JTCK
PA15 - JTDI
PB3 - JTDO
PB4 - JTRST
----------------------------------------------------------------------------------------------------
9 存储器管理
----------------------------------------------------------------------------------------------------
1.统一编址
程序存储器(Flash) + 数据存储器(SRAM)+外设寄存器 组织在一个4GB的地址空间
2.小端格式
3. ┏ 主存储区域
片上FLASH┨ ┏ 系统存储器:有ST公司烧写,用户不可以擦除,即片上ROM
┗ 信息块┨
┗ 选项字节:分为4个32位字节,只有2个字节留给用户,其余有特定用处
4.STM32芯片将4GB的地址空间 化为8个512M的块(Block)
4GB内存 ┲ Block 7 0xE0000000 - 0xFFFFFFFF 内核外设对应地址,例如NVIC寄存器、MPU寄存器以及片上调试组件
┠ Block 6 0xC0000000 - 0xDFFFFFFF 用于扩展片外的外设(一般情况不用)
┠ Block 5 0xA0000000 - 0xBFFFFFFF 用于扩展片外的外设(一般情况不用)
┠ Block 4 0x80000000 - 0x9FFFFFFF 用于扩展外部存储器RAM(一般情况不用)
┠ Block 3 0x60000000 - 0x7FFFFFFF 用于扩展外部存储器RAM(一般情况不用)
┠ Block 2 0x40000000 - 0x5FFFFFFF 用于芯片的外设
┠ Block 1 0x20000000 - 0x3FFFFFFF 用于芯片的SRAM
┗ Block 0 0x00000000 - 0x1FFFFFFF 用于芯片的代码区
Block 0 ┲ 0x1FFFF800 - 0x1FFFFFFF Option bytes 选项字节
┠ 0x1FFFB000 - 0x1FFFF7FF system memory 系统存储,即片上ROM
┠ 0x08040000 - 0x1FFFAFFF Reserved 保留
┠ 0x08000000 - 0x0803FFFF Flash 主存储区 共256KB
┠ 0x00040000 - 0x07FFFFFF Reserved 保留
┗ 0x00040000 - 0x07FFFFFF aliased to flash or system memory depending on BOOT pins
5.FLash 模块┲ Flash主存储区(Main memory)
┠ Flash信息区(Information block)
┗ Flash存储接口寄存器区(Flash?memory interface) 0x40022000 - 0x40022023
----------------------------------------------------------------------------------------------------
9 AHB总线外设
----------------------------------------------------------------------------------------------------
低速
APB1 ┲ DAC
┠ PWR
┠ BKP
┠ CAN
┠ USB
┠ I2C1 I2C2
┠ USART2 USART3
┠ UART4 UART5
┠ SPI2/I2S SPI3/I2S
┠ IWDG
┠ WWDG
┠ RTC
┗ TIM2 TIM3 TIM4 TIM5 TIM6 TIM7
高速
APB2 ┲ ADC1 ADC2 ADC3
┠ USART1
┠ SPI1
┠ TIM1 TIM8
┠ GPIOA GPIOB GPIOC GPIOD GPIOE
┠ EXTI
┗ AFIO
|