stm32 学习笔记2

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Mr_Dec/article/details/102732374

####MDK5软件入门

###STM32官方固件库简介

##固件库基础知识:参考固件库使用手册中文翻译版 P32
方便开发程序,那么什么是固件库

##库开发和寄存器开发的关系
对外设的工作原理了解,再去看库函数,方便开发
固件库不是万能的
##STM32 固件库与 CMSIS 标准讲解
STM32 ARM ARM7
ARM:芯片标准公司
TI,ST:不做标准,根据标准设计芯片,所以内核结构都是一样的,但是存储器容量,片上外设,IO以及其他模块的区别
CMSIS标准:
内核外设函数:处理器内部寄存器地址,功能函数
中间件访问层:定义访问中间件的通用API
外设访问层:硬件寄存器的地址以及外设的访问函数
向下负责与内核和各个外设直接打交 道,向上提供实时操作系统用户程序调用的函数接口。
使芯片生产公司设计的库函数必须按照CMSIS这套规范来设计,比如说对系统初始化函数名字必须为SystemInit,
对外设驱动文件的文件名字规范化,函数名字规范化等。
CMSIS标准
##STM32官方库包
Libararies:
CMSIS:启动文件
CM3
CoreSupport
core_cm3.c&&core cm3.h提供进入M3内核的接口
DeviceSupport
ST
STM32F10xt
system_stm32f10x.c
system_stm32f10x.h :设置系统以及总线时 钟,这个里面有一个非常重要的 SystemInit()函数,
这个函数在我们系统启动的时候都会调用, 用来设置系统的整个时钟系统。
stm32f10x.h :主要 是系统寄存器定义申明以及包装内存操作,对于这里是怎样申明以及怎样将内存操作
封装起来 的,“MDK 中寄存器地址名称映射分析”中会讲到。 ???
startup
arm含8个启动文件,对于不同容量的芯片启动文件不一样,
startup_stm32f10x_ld.s: 适用于小容量 产品
startup_stm32f10x_md.s : 适用于中等容量产品
startup_stm32f10x_hd.s: 适用于大容量产品
是指 FLASH 的大小,64K<=x<256K是.M
该板子使用H
启动文件以及比较基础的寄存器定义以及中断向量定义的文件
STM32F10x_StdPeriph_Driver:STM32固件库源码文件
inc:头文件
src:固件库源码文件
Project :
Examples:固件实例源码,可参考修改官方提供的实例来快速驱动自己的外设
Template:工程模板
Utilities:官方评估板的一些对应源码,可以忽略不看
stm32f10x_stdperiph_lib_um.ch 帮助文档
¥¥¥¥笔记
启动文件主要是进行堆栈之类的初始化,中断向量表以及中断函数定义。

###MDK5简介
嵌入式开发工程师
使用 uVision5 IDE 集成开发环境
目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具
MDK5 由两个部分组成:MDK Core 和 Software Packs。
Software Packs 可以独立于工具链进行新芯片支持和中间库的升级。
MDK5 安装包可以在:http://www.keil.com/demo/eval/arm.htm
要让 MDK5 支持 STM32F103 的开发,我们还需要安装 STM32F1 的器件支持包:Keil.STM32F1xx_DFP.1.0.5.pack(STM32F1 的器件包)。参靠安装手册

##新建给予固件库的MDK5工程模板
STMicroelectronics->STM32F1 Series->STM32F103->STM32F103RCT6
管理
改为template
USER:STM32F10x_FWLib/src的所有文件
CORE:core_cm3.c,startup_stm32f10x_hd.s
FWLIB: main.c,stm32f10x_it.c, system_stm32f10x.c.
点击魔术棒:OUTPUT 选择OBJ
添加头文件
点击魔术棒:C/C++ :选择includePaths:包含所有头文件,不要src
配置一个全局的 宏定义变量:c/c++ :Define : STM32F10X_HD,USE_STDPERIPH_DRIVER
在output勾选生成hex
添加system以及其头文件
完成!!!!
###程序下载与调试
STM32软件仿真:在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存 器,你可以知道代码是不是真正有效。
##检查芯片型号和晶振频率
Target:8.0MHz
##设置支持软硬件仿真 在Debug中
Debug设置
点击debug
#1
观看变量/堆栈窗口:该按钮按下,会弹出一个显示变量的窗口,在里面可以查看各种你想 要看的变量值,也是很常用的一个调试窗口。
串口打印窗口:该按钮按下,会弹出一个类似串口调试助手界面的窗口,用来显示从串口 打印出来的内容。 内存查看窗口:该按钮按下,会弹出一个内存查看窗口,可以在里面输入你要查看的内存 地址,然后观察这一片内存的变化情况。是很常用的一个调试窗口
性能分析窗口:按下该按钮,会弹出一个观看各个函数执行时间和所占百分比的窗口,用 来分析函数的性能是比较有用的。 逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口, 就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。

###串口程序下载
设置
###JLINK下载与调试
利用调试工具,比如 JLINK、ULINK、STLINK 等就可以实时跟踪程序,从而找到你程序中的 bug,使你的开发事半功倍。

###MDK5 使用技巧
注释
缩紧
代码提示
关键字标记
快速查找文件

猜你喜欢

转载自blog.csdn.net/Mr_Dec/article/details/102732374