STM32的介绍及MDK

文章目录

  • STM32介绍
    • STM32命名
    • armV7的三个系列
    • STM32F103引脚
    • STM32F103资源
    • STM32系统结构
  • STM32开发
    • 固件库概念
    • 容量
    • STM32启动模式
  • STM32软件
    • MDK介绍
    • MDK安装
    • 生成HEX文件
    • 支持包安装
    • 添加头文件路径
    • 库函数选择外设
    • 编译成功
    • flymcu使用
  • STM32调试

STM32介绍

STM32命名

STM32的介绍及MDK_第1张图片

armV7的三个系列

A:针对操作系统
R:针对实时系统
M:针对微控制器

STM32F103引脚

STM32的介绍及MDK_第2张图片

STM32F103资源

  • 64KB SRAM
  • 512KB FLASH
  • 2 个基本定时器、4 个通用定时器、2 个高级定时器
  • 2 个 DMA 控制器(共 12 个通道)
  • 3 个 SPI
  • 2 个 IIC
  • 5 个串口
  • 1 个 USB
  • 1 个 CAN
  • 3 个 12 位 ADC、1 个 12 位 DAC
  • 1 个 SDIO 接口、1 个 FSMC 接口
  • 112 个通用 IO 口
  • 84个中断,16个可编程优先级,任意脚中断
  • 带有外部总线(FSMC)可以用来外扩 SRAM 和连接 LCD 等

STM32系统结构

STM32的介绍及MDK_第3张图片

四个驱动单元是:

  • 内核 DCode 总线;
    • 该总线将 M3 内核的 DCode 总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。
  • 系统总线;
    • 系统总线:该总线连接 M3 内核的系统总线到总线矩阵,总线矩阵协调内核和 DMA 间访
  • 通用 DMA1;
  • 通用 DMA2;
    • DMA总线将 DMA 的 AHB 主控接口与总线矩阵相连,总线矩阵协调 CPU 的DCode 和 DMA 到 SRAM,闪存和外设的访问。

四被动单元是:

  • AHB 到 APB 的桥:连接所有的 APB 设备;
    • AHB/APB 桥:这两个桥在 AHB 和 2 个 APB 总线间提供同步连接,APB1 操作速度限于36MHz,APB2 操作速度全速。
  • 内部 FlASH 闪存;
  • 内部 SRAM;
  • FSMC;

总线矩阵

  • 总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用轮换算法。

ICode总线

  • 该总线将 M3 内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。

STM32开发

固件库概念

FWlib叫固件库,FW的单词是Firmware.即固件的意思。STM32的固件库包含C文件和H文件,主要用于存放STM32的一些寄存器的定义及一些底层驱动函数

容量

对于 103 系列,主要是用其中 3 个启动文件
• startup_stm32f10x_ld.s: 适用于小容量 产品,小容量:FLASH≤32K
• startup_stm32f10x_md.s : 适用于中等容量产品,中容量:64K≤FLASH≤128K
• startup_stm32f10x_hd.s: 适用于大容量产品,大容量:256K≤FLASH

STM32启动模式

B0 B1 启动模式
0 X 主闪存存储器
1 0 系统存储器
1 1 内置SRAM

STM32软件

MDK介绍

• MDK是keil公司开发的,为基于Cortex、arm7、arm9等处理器设备提供的一个完整开发环境。
• MDK(Microcontroller Development Kit,字面的意思就是“微控制器开发套装”)。

MDK安装

o 在软件资料,1,软件,MDK5
o 无脑安装
• MDK5破解
o File license Mangement 复制CID
o 在keygen破解软件中运行CID 得到秘钥
o 用管理员身份打开MDK5,再次进入license Management 的New ID Code粘贴

生成HEX文件

点击魔术棒,进入配置菜单,选择 Output。然后勾上下三个选项。 其中 Create HEX file 是编译生成 hex 文件,Browser Information 是可以查看变量和函数定义。
STM32的介绍及MDK_第4张图片

支持包安装

包的下载地址是www.keil.com/dd2/pack 点击Install将会来此下载
在这里插入图片描述

添加头文件路径

对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来 。
点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击Include Paths 右边的按钮。
弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添加进去。
记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path一定要定位到最后一级子目录。然后点击 OK.
STM32的介绍及MDK_第5张图片

库函数选择外设

3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。
c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面
STM32的介绍及MDK_第6张图片

如果你用的是中容量那么STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD. 然后点击 OK。

编译成功

STM32的介绍及MDK_第7张图片

从编译信息可以看出,我们的代码占用 FLASH 大小为:
1892 字节(1556+336),所用的 SRAM 大小为:1864 个字节(32+1832)。
Code:表示程序所占用 FLASH 的大小(FLASH)。
RO-data:即 Read Only-data,表示程序定义的常量,如 const 类型(FLASH)。
RW-data:即 Read Write-data,表示已被初始化的全局变量(SRAM)
ZI-data:即 Zero Init-data,表示未被初始化的全局变量(SRAM)

flymcu使用

串口下载软件
STM32的介绍及MDK_第8张图片

STM32调试

JTAG与SWD是个接口,JLink指的是仿真器
串口只能下载代码,并不能实时跟踪调试,而利用调试工具,比如 ST-LINK,JLINK 和
ULINK 等就可以实时跟踪程序,从而找到你程序中的 bug,使你的开发事半功倍。
STM32的介绍及MDK_第9张图片

你可能感兴趣的:(嵌入式开发,stm32,单片机,arm)