一、使用固件库建立一个工程
我打算先从软件编程学起,以前用过KEIL 和IAR,IAR我比较熟悉,因为参加电子设计竞赛的时候,就是用它编程MSP430程序的。但我还是选择了KEIL,也许因为资料比较多,或者别的吧,我没分析过KEIL 和IAR代码效率如何,因为这不是我现在要考虑的,软件都只是工具而已。
我去百度搜索了几篇如何在KEIL MDK环境下建立STM32工程,加上自己的实践。我也把我的初学者步骤贴出来。
1、了解STM32F103的固件库
我在网上下了STM32F103的固件库-----stm32f10x_stdperiph_lib 3.5V版的,里面内容如图所示,据说STM32F103和STM32F101都能用。
2、创建第一个工程
1.新建一个文件夹取名如 first_project,也可以建在桌面。
2.在里面新建 CMSIS ,libraries ,Libaries , List(用于链接的) , Obj(工程文件) , output (输出hex文
件), User 文件夹;
3. 将固件库里 Libraries--->STM32F10x_StdPeriph_Driver 下的 inc 和src 文件夹复
制到fisrt_project 文件夹下的libraries 里;
将固件库里 Libraries--->CMSIS--->CM3--->CoreSupport文件夹里面的 core_cm3.c
和core_cm3.h 文件复制到我们新建的fisrt_project 文件夹下的CMSIS 里;
将固件库里 Project---->STM32F10x_StdPeriph_Template(这个文件家里有KEIL和
IAR建好工程的模板)里的stm32f10x_conf.h , stm32f10x_it.c ,
stm32f10x_it.h , system_stm32f10x.c 四个文件 复制到我们新建的fisrt_project
文件夹下的User 里;
如下图所示
4、打开keil uvision4 MDK , 在菜单栏里点击project 选择 new uVision project
5、保存工程名,选择Obj文件夹, 文件名为first_project ,不用加后缀格式,系统默认。
6、接下来会弹出让你选择器件的窗口,这里我们选择 STmicroelectronics 的 STM32F103C8
7、最后会弹出是否复制启动代码的对话框,选择YES;
3、 接下来就是管理工程文件了
1、在project窗口右键点击Tagert 1 选择 manage conponents 或者
找到倒数第二个 品字形图标;
2、在Groups 框下面将Groups1 重命名为startup ,同时添加CMSIS, Libraries, User;
选择CMSIS 在Files框下将CMSIS文件夹的core_cm3.c添加进去;
选择Libraries在Files框下将Libraries--->src文件下的所以文件都加进去添加进去;
选择User在Files框下将User文件下的所以文件都加进去添加进去;
如下图所示:
3、工程构架如下图所示:
startup_stm32f10x_ld.s
startup_stm32f10x_md.s
startup_stm32f10x_hd.s
其中,ld.s适用于小容量 产品;md.s适用于中等容量产品;hd适用于大容量产品;
这里的容量是指FLASH的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
4、编写main.c 和文件路径
1、新建main.c 保存到User文件夹里,将其添加到User工程名下。
#include "stm32f10x.h"
int main(void)
{
while(1)
{;}
}
2、在project框下,右键点击Target 1,选择Options for Target target1
在output 选项下,在create HEX file 前打上钩, 点击select Folder for Objects 选择输出文
件夹为 output文件夹;
在Listing选项下,点击select Folder for Listings 选择链接文
件夹为 List文件夹;
在C/C++选项下, define里 填入 USE_STDPERIPH_DRIVER,STM32F10X_MD 中间用英
文的逗号;(一定要记得)
Include Paths 里,点击右边的文件路径框 ,选择相应的CMSIS,
libraries 里的INC 和SRC 还有 User ;
也可以填绝对路径,比如: C:UsersAdministratorDesktopSTM32编程练习
fisrt_projectCMSIS 这样比较麻烦
3、好了,这下开始编译链接:
0 Error , 0 Warring;
First_project 就建好了;万里长征的第一步,总算走出去了。
4、总结:关键是Option for target 的设置,包括output ,listing,和C/C++,尤其是C/C++这个选项里一定要设置对。
Define:USE_STDPERIPH_DRIVER,STM32F10X_MD,这是预定义的两个宏定义。
在stm32f10x.h这个头文件里搜索 USE_STDPERIPH_DRIVER 有这么一段
#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif
据说是定义控制了是否在应用中启用外设驱动。
在stm32f10x.h这个头文件里搜索 STM32F10X_MD,
STM32中密度器件
#ifdef STM32F10X_MD
ADC1_2_IRQn = 18,
USB_HP_CAN1_TX_IRQn = 19,
USB_LP_CAN1_RX0_IRQn = 20,
CAN1_RX1_IRQn = 21,
CAN1_SCE_IRQn = 22,
EXTI9_5_IRQn = 23,
#endif 可能是定义中断向量的值吧
上一篇:如何建一个STM32F030工程模板(标准库版)
下一篇:关于STM32F2系列项目开发工程文件的建立
推荐阅读
史海拾趣
Flextronics(虚构为Flexxon Pte Ltd)自上世纪90年代末成立以来,便致力于成为全球供应链整合的领军者。公司最初从新加坡起步,迅速在全球范围内建立了多个生产基地和研发中心,以满足客户对电子产品快速响应和高质量生产的需求。通过高效的供应链管理,Flextronics不仅缩短了产品上市时间,还大幅降低了生产成本,赢得了包括惠普、戴尔、诺基亚等国际巨头的信任与合作。
随着LED照明市场的不断扩大,Heatron LED Integration凭借敏锐的市场洞察力,迅速调整市场战略。公司不仅巩固了在国内市场的领先地位,还积极开拓国际市场,与多家国际知名企业建立了长期合作关系。通过参加国际展会、设立海外分支机构等方式,公司成功将产品推向全球多个国家和地区,实现了品牌的国际化。
Alpha 3 Manufacturing公司深知产品质量是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格的把控。同时,公司还引入了先进的生产设备和检测仪器,确保产品的质量和性能达到国际先进水平。此外,公司还定期对生产过程进行审查和改进,不断提高生产效率和产品质量。
2011年,Bussmann的母公司Cooper集团被EATON集团收购,Bussmann随之成为EATON旗下的一个产品系列。EATON集团作为一家多元化的动力管理企业,在电气和航空航天领域有着深厚的积累。通过整合EATON集团的资源和技术优势,Bussmann得以在更广泛的领域开展业务,并进一步提升其在电路保护领域的竞争力。
1914年,Bussmann五兄弟以家族生意为起点,在自家的地下室里开始生产熔断器。他们凭借对电路保护的深刻理解和对市场需求的敏锐洞察,不久便将业务从地下室扩展到了小型厂房,并专注于汽车熔断器的生产。这一转变不仅标志着Bussmann业务的飞速发展,也奠定了其在电路保护领域的基石。通过不断的技术创新和市场拓展,Bussmann逐步在保险丝市场上取得了领先地位。
随着国内市场的饱和,Beta Dyne开始将目光投向海外市场。公司制定了一套完整的国际化战略,包括在海外设立研发中心、建立销售渠道以及与当地企业建立合作关系等。通过不断的努力,Beta Dyne的产品逐渐打入国际市场,公司的知名度和影响力也得到了显著提升。
为什么在WinCE6.0 R2中定制SDK时,Emulation选项卡中的选项都是灰的? 我想定制一个WinCE6.0的模拟器,可是在SDK的属性页中Emulation选项卡全部是灰的,也就是不可用,希望有人能指点一下。 … 查看全部问答∨ |
求教CE50.HTML VIEW(WEBVIEW.DLL)的使用? CE5.0,有HTML VIEW(WEBVIEW.DLL)但不知如何使用这个控件,想做一个本地浏览网页文件的应用程序,pc机又没有这个控件不知如可下手,请高手帮助,谢谢!… 查看全部问答∨ |
本书前几节介绍了AVR体系和结构,后面的几章专门介绍AVR单片机的工程应用。希望对大家有所帮助! [ 本帖最后由 鑫海宝贝 于 2011-5-16 08:51 编辑 ]… 查看全部问答∨ |
程序编译时出现这个错误提示,可PARK_calc 已经定义了啊, 提示说的“main.obj”中没定义_PARK_calc 是什么意思?请大家指教! ------------------------------- DQ.pjt - Debug ----------------------------- ...… 查看全部问答∨ |
一、概述此文档介绍了基于ZingSK运行Ubuntu的必要的步骤。此文档所有命令均是在Ubuntu12.04 x86_32操作系统下完成。 硬件平台:ZingSK开发套件开发环境:Windows7-32位、VMware 9.0 + Ubuntu 12.04、arm- xilinx- linux-gnueabi交叉编译环境 嵌入 ...… 查看全部问答∨ |