首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» stm32 开发环境MDK+库文件配置
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
stm32 开发环境MDK+库文件配置
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2014-6-12 12:25
|
只看该作者
stm32 开发环境MDK+库文件配置
单片机
,
开发
stm32 是一款arm cortex-m3 架构的芯片 结合库函数使用 可以更方便的实现各种功能 尤其是结合各种总线开发应用时 因为库函数已经封装很多总线的处理方法和驱动 直接调用对应库函数 就可以操作各个总线 相比于 直接操作寄存器来说 操作I2C SPI CAN 等总线结构 会简单很多
stm32 的开发工具有很多MDK ADS AVR 等 我用的是MDk 其实就是可以编译arm的keil 界面和keil是一样的 之前安装过keil 直接把MDK 覆盖原来的keil 就可以支持51单片机和arm的芯片的开发
MDK官网下载地址 :
https://www.keil.com/arm/demo/eval/arm.htm
stm32 V3.5.0 库文件官网下载:
stm32f10x_stdperiph_lib.zip
stm32 相关资料:
http://www.st.com/internet/mcu/product/164492.jsp
关于开发应用 是使用库函数 还是直接操作寄存器的问题 我觉得使用库函数 有很多的好处 尤其是在团队开发应用的时候 每个程序员都有自己的代码风格 加上操作寄存器的复杂 项目巨大的代码量 会让开发和维护变得困难 当然想更为深入了解arm 的原理 直接操作寄存器当然可取 而且当你熟悉到一定程度 可能写出的代码 会比库函数的效率更高 不过一般的应用 使用库函数都可以实现 库函数很类似于 php 等语言中框架的概念 对开发很有帮助
固件库设置
库函数中很多内容是可以删减的 减小项目的大小 可以根据自己的习惯 改变库函数结构
首先解压缩下载的固件库(保留一个备份,你懂的)
_htmresc : ST 的logo 完全无用,可以删去。
Libraries: 比较重要的文件包含STM32的系统文件和大量头文件,也就是库文件了。
Project: 包含大量外设的例程,和各个软件版本的评估版工程模板。KEIL 对应的就是MDK-ARM 文件下的工程模板。你也可以利用这个工程模板来修改,得到你自己的工程模块,开发中不需要,可以删去。
Utilities: 就是评估版的相关文件:也不会用到,可以删去。
需要先去掉这四个文件的只读属性,选择文件夹后,右键属性,勾去只读。。。
我删减后库函数结构如下图:
STM32 v3.5 库函数实际文件结构
Cmsis 包含微控制器外设访问层和内核设备访问层文件;
Startup 当然包含的是stm32的 启动文件,与芯片Flash容量有关,详见手册
Libraries 包含的是 标准外设库驱动源文件(src文件夹) 和 (inc) 标准外设库驱动头文件
User中包含的是项目的代码 和中断代码
Project 用于包含编译是时生成的一系列文件,Output 用来放置输出文件 .hex .axf,Listing用来放置Listing信息
MDK设置
在库函数压缩包中找到相应文件 如上图分配好各个文件 (可参考此文:
stm32固件库使用V3.5
) 就可以继续下一步
在keil中新建工程 比如建TEST.uvproj,保存在刚才的Project 文件夹下面。选择你使用的STM32芯片,比如我用的是103RB 的,就选择那个,确定后,会跳出来个窗口,问你是否复制启动代码,选择否,因为我们库函数中已经有了,前面的准备工作不是白做的。
然后右键TARGET 1,选择Manage Ccmponents,根据刚才的库函数文件结构把文件加进去,新建文件夹,再加入相应文件。
设置好的界面如下:
keil下的这些文件夹会虚的 不一定是对应存在的文件夹的
最后在右键TARGET 1,选择Options for TARGET1 。。在tab页 Listing,Output下点击Select Folder for Objects...设置对应的输出文件夹 。
Output设置如下:
在C/C++下 还需要设置下Include Paths路径,这个路径根据你的实际文件目录结构相关:
设置完成后就可以编译一下测试 库函数可以正常运行
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议