找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1570|回复: 0
打印 上一主题 下一主题
收起左侧

单片机比赛用的stm32库函数工程源码

[复制链接]
跳转到指定楼层
楼主
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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表