几个月前刚接触STM32时,第一感觉就是固件库里的文件又多又深,还好发现固件库里自带有范例文件,但是它们全都是针对特定的评估板的,手头只有一块STM MCU 3 in 1 MiniKit。虽说作些修改就可为我所用,可对于像我这样还没入门的菜鸟,知道要如何修改,并且编译通过,却是非常困难。
<wbr><wbr>昨晚闲暇,在网上找了一些资料,自己也学着新建了一个工程。今天写下来,顺带温故一遍。</wbr></wbr>
<wbr><wbr><wbr>首先介绍一下操作环境:</wbr></wbr></wbr>
<wbr><wbr><wbr><a href="http://www.keil.com/" target="_blank" style="text-decoration:none; color:rgb(118,95,71)">Keil</a>版本:<strong>μVision 4.1.0</strong></wbr></wbr></wbr>
<wbr><wbr><wbr><a href="http://www.stmicroelectronics.com.cn/cn/com/home/home.jsp" target="_blank" style="text-decoration:none; color:rgb(118,95,71)">STM32</a>固件库版本:<strong>V3.4.0</strong></wbr></wbr></wbr>
<wbr><wbr></wbr></wbr>第一步,建立工程文件夹,在其子文件夹内拷贝并整理好相应的文件。
<wbr><wbr><wbr>1.1、建立工程文件夹,将它命名为"SysTick"。</wbr></wbr></wbr>
<wbr><wbr><wbr>1.2、在"SysTick"下分别建立"Lib"、"User"、"List"及"Object"这四个文件夹。</wbr></wbr></wbr>
<wbr><wbr><wbr>1.3、将固件库中"Libraries"文件夹下的"CMSIS"和"STM32F10x_StdPeriph_Driver"这两个文件夹拷贝至上一步建立的"Lib"文件夹下。</wbr></wbr></wbr>
<wbr><wbr><wbr>1.4、将固件库中"Project"-->"STM32F10x_StdPeriph_Examples"-->"SysTick"内的全部文件拷贝至第2步建立的"User"文件夹下。</wbr></wbr></wbr>
<wbr><wbr><wbr>至此,第一步已经完成。</wbr></wbr></wbr>
<wbr><wbr><span style="color:#ED1C24; word-wrap:normal; word-break:normal; line-height:21px">第二步,建立Keil工程。</span></wbr></wbr>
<wbr><wbr><wbr>2.1、"Project"-->"New<wbr>μVision Project...",将新建立的工程保存在步骤1.1时建立的"SysTick"文件夹下,并命名为"SysTick"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>2.2、在弹出的"Select Device for 'Target1'..."对话框中,选择相应的器件,ST MCU 3 in 1 MiniKit上的芯片是STM32F103C8,所以我选择STM32F103C8。确定完成后按"OK"。</wbr></wbr></wbr>
<wbr><wbr><wbr>2.3、在弹出的询问是否添加启动代码的对话框中,选"否"。因为我们使用固件库中的启动代码。</wbr></wbr></wbr>
<wbr><wbr><wbr>2.4、点击按钮,在Target1下建立四个Groups: "CMSIS"、"User"、"Lib"、"StartUp"。</wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>在"CMSIS"Grout下添加如下两个c文件:"\SysTick\Lib\CMSIS\CM3\CoreSupport\core_cm3.c"以及"\SysTick\User\system_stm32f10x.c"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>在"User"Group下添加如下两个c文件:"\SysTick\User\main.c"和"\SysTick\User\stm32f10x_it.c"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>在"Lib"Group下添加如下四个c文件:"\SysTick\Lib\STM32F10x_StdPeriph_Driver\src\misc.c"、</wbr></wbr></wbr></wbr>
"\SysTick\Lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c"、"\SysTick\Lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c"
和"\SysTick\Lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c"。
<wbr><wbr><wbr><wbr>在 "StartUp"Group下添加"\SysTick\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>根据你所使用的不同容量的芯片,选择对应的启动代码文件。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>添加完所有的文件后,点击"OK"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>2.5、点击"Target Options..."按钮,作如下设置。</wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>"Output"标签下",Select Folder for Objects..."选择步骤1.2时建立的"Object"文件夹作为保存路径。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>"Listing"标签下,"Select Folder for Listings..."选择步骤1.2时建立的"List"文件夹作为保存路径。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>"C/C++"标签下,"Define"后填写"USE_STDPERIPH_DRIVER, STM32F10X_MD";"Include Paths"内添加".\Lib\CMSIS\CM3\CoreSupport"、".\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x"、".\Lib\STM32F10x_StdPeriph_Driver\inc"、".\User"。添加完成后点击"OK"。</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>完成所有设置后,点击"OK"。</wbr></wbr></wbr></wbr>
<wbr><wbr>到此为止,工程已建立完成。</wbr></wbr>
<wbr><wbr>关键点提示:</wbr></wbr>
<wbr><wbr>1、步骤2.5中"C/C++"中定义的两个宏,"USE_STDPERIPH_DRIVER"表示使用固件库,"STM32F10X_MD"与你所使用的芯片相对应,步骤2.4中启动代码文件的选择也与此类似。</wbr></wbr>
<wbr><wbr>2、"stm32f10x_conf.h"这个文件,里面可以选择你所使用的外设,方法是——将使用的外设前的注释去掉即可。</wbr></wbr>
<wbr><wbr>3、步骤2.4,其目的是添加头文件的路径,虽然看起来很烦琐,但理解其目的后就会显得清楚多了。</wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr>
<wbr><wbr><span style="color:#ED1C24; word-wrap:normal; word-break:normal; line-height:21px">这个地方讲得更清楚跟透彻:</span><a href="http://blog.ednchina.com/xukai871105/1981649/message.aspx" style="text-decoration:none; color:rgb(118,95,71)">http://blog.ednchina.com/xukai871105/1981649/message.aspx</a></wbr></wbr>
<wbr><wbr><span style="color:#ED1C24; word-wrap:normal; word-break:normal; line-height:21px">这里的视频也不错:</span><a href="http://v.youku.com/v_show/id_XMjQyMDg1MDMy.html" style="text-decoration:none; color:rgb(118,95,71)">http://v.youku.com/v_show/id_XMjQyMDg1MDMy.html</a></wbr></wbr>
补充:
MDK中出现 Error: Flash download failed-"Cortex-M3"的原因及解决办法
出现这处问题通常是MDK中的Flash的编程算法没有配置或没有配置正确,
在主菜单中打开Flash->Configure Falsh Tools配置窗口,切换到“Utilities"页。
按“Setting"按钮进入“Flash download setup"配置窗口
然后一路按“OK”按钮退出配置窗口
在“Flash download setup"配置窗口点击“Add”按钮进入“Add Flash Programming Algorlthm"窗口
在“Add Flash Programming Algorlthm"窗口,根据你实际使用的芯片选择,这里的豆皮STM32开发板用的是STM32F103VBT6,应先择"STM32F10X
128kB Flash",选定编程算法后,按“Add”按钮。
之后一路按"OK"按扭确认修改的配置.
分享到:
相关推荐
STM32固件库V3.5,需要导入到keil软件中才能使用stm32的开发
Version: 2.6.0 (2021-07-30) Keil.STM32L4xx_DFP.2.6.0.pack Updated Pack to STM32Cube_FW_L4 Firmware Package version V1.17.0 Package Description: Added global define USE_FULL_LL_DRIVER to component ::...
此固件库为Keil官方提供,直接双击安装即可,安装成功后在MDK5工程的Device中可以选择STM32该系列的ARM芯片。 Version: 2.14.0 (2019-07-24) Keil.STM32F4xx_DFP.2.14.0.pack Warning: --C99 is no longer ...
基于STM32固件库V3.5建立keil工程详细步骤
Version: 2.5.0 (2020-10-21) Keil.STM32L4xx_DFP.2.5.0.pack Updated Pack to STM32Cube_FW_L4 Firmware Package version V1.16.0 using HAL Drivers V1.12.0 Package Description (pdsc): Added global define ...
Updated STM32CubeG4 Firmware Package to V1.3.0. Updated svd files Fixed flash programming algorithm issue for the STM32G4xxxC devices to support both Dual/Single Bank configuration in STM32G4xx_256....
Version: 1.3.0 (2021-03-24) Keil.STM32G4xx_DFP.1.3.0.pack Download CMSIS Device Support: Updated STM32Cube Firmware G4 library to version V1.4.0. Updated SVD files. Updated documentation. CMSIS Flash...
STM32 最新固件库 Version3.5
使用STM32固件库建立keil工程详细步骤
Version: 2.5.0 (2020-03-23) Keil.STM32H7xx_DFP.2.5.0.pack Board Support: Added STM32H7B3I_EVAL board support. Blinky example Flash Programming: Updated the internal Flash programming algorithm for ...
Migrated example to STM32CubeG4 Firmware Package version V1.4.0. Changed default compiler to Arm Compiler 6. Changed Assembler option to armclang (Auto Select). Updated RTX config files to CMSIS 5.8.0...
Keil4 建立STM32工程详解,有图
keil开发环境,stm32f系列固件库,内含F0和F3。。。。。
适用于STM32F103C8芯片的固件库版Keil工程模板,实现一个流水灯,Systick中断延时。该工程可进行常规的Flash调试,还可切换Target目标进行RAM调试。若要用于其他STM32F10x芯片,只需稍作修改即可。有关RAM调试请参考...
该文件是Keil.STM32F1xx_DFP.2.4.0固件库,在使用Keil5进行STM32单片机进行项目开发的时候,需要在Keil5里面安装对应的芯片固件库。
Updated STM32Cube Firmware G0 library to version V1.3.0. Added CubeMX support. Added device support for: STM32G030, STM32G031, STM32G041 devices. Updated device documentation. Updated SVD files for...
Keil.STM32F4xx_DFP.2.17.0.pack(官网最新固件! STM32F4xx系列固件库for Keil MDK 5)
此固件库为Keil官方提供,直接双击安装即可,安装成功后在MDK5工程的Device中可以选择STM32该系列的ARM芯片。 Version: 2.14.0 (2019-07-24) Keil.STM32F4xx_DFP.2.14.0.pack Warning: --C99 is no longer enforced...
Version: 2.14.0 (2020-12-18) Keil.STM32F7xx_DFP.2.14.0.pack STM32CubeMX integration: Added support for USB PHY configuration (MX_Device_h.ftl and FrameworkCubeMX_gpdsc.ftl). Added debugProbe board ...