学习stm32f103(一) 工程创建
来源:互联网 发布:淘宝首页html源代码 编辑:程序博客网 时间:2024/05/22 02:08
环境:μVision V5.21 MDK
参考资料:ALIENTEK MiniSTM32 开发板资料
第一步:新建工程
新建一个工程并选择器件的型号,我的型号是stm32F103c8t6
第二步:新建几个文件夹
这步不是必须的,但是可以使工程的结构比较清晰一些,否则几十个文件混杂在一起非常乱,按照我看的教程,在工程的文件夹下再新建三个新的文件夹,CORE、FWLIB、USER文件夹,CORE文件夹用来放启动文件,USER文件夹用来放main文件和其他一些,FWLIB用来放库文件
第三步:准备stm32的固件库
我用的是STM32F10x_StdPeriph_Lib_V3.5.0这个库,在官网中可以下载到各种型号的库
http://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939
第四步:放置各种文件
在下载了固件库后,需要将固件库中的各种文件放入我们的工程中
首先,将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\中有两个文件夹inc和src,将这两个文件夹放入我们的FWLIB文件夹中,这就是我们后来用来编程的库文件。
接下来将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\下的core_cm3.c core_cm3.h 复制到我们的CORE文件下
同样将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下的startup_stm32f10x_md.s文件复制到CORE目录下,这里在\startup\arm\下有许多类似的文件,这里需要根据不同的芯片来选择不同的文件。
这里参考博客http://blog.csdn.net/gasbi/article/details/7545568 写的,不同文件对应的型号
startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx
startup_stm32f10x_xl.s FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx
再根据
根据芯片的flash大小选择自己的文件,不同芯片的具体数值都可以在官网上查到
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f1-series.html?querycriteria=productId=SS1031
接下来将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h复制到USER文件夹下,并将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的 stm32f10x_conf.h, stm32f10x_it.c, stm32f10x_it.h文件复制到USER文件夹下,接着在USER文件夹下创建一个main.c,这就是我们的主文件了。
接下来点击manage project item,添加3个Group,在USER中添加 main.c stm32f10x_it.c system_stm32f10x.c,在CORE中添加startup_stm32f10x_md.s(不同型号不同),core_cm3.c,FWLIB中将FWLIB中src中的文件都加进来(可选)
添加完成后的工程:
第五步:添加头文件的路径
option-----》c/c++--------》include path 中加入我们三个文件夹的路径,FWLIB的路径要定位到inc文件才行。
第六步:在刚才的c/c++下面的Define中填入 STM32F10X_MD(不同器件不同),USE_STDPERIPH_DRIVER,这相当于添加了两个宏
第七步:编写main函数:
#include "stm32f10x.h"int main(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_ResetBits(GPIOC,GPIO_Pin_13); while (1) { }}
第八步:编译
没任何问题的话,就不会报错了
第九步:下载到板子上去
这里我用的是stlink-v2来下载,但是驱动安装不上,于是在官网上找了一下
STLinkV2的驱动 在 ST 官网中可以找到 地址:https://my.st.com/content/my_st_com/en/products/development-tools/hardware-development-tools/development-tool-hardware-for-mcus/debug-hardware-for-mcus/debug-hardware-for-stm32-mcus/st-link-v2.html
在最下面几栏中可以找到Tools and Software 中的STSW-LINK004 文件就是驱动,下载安装后就ok了
在工程的option------》Debug- 中 使用ST-Link Debugger ,然后再下载就可以了
第十步:下载程序ok,led成功的被点亮,可喜可贺!
- 学习stm32f103(一) 工程创建
- STM32F103学习笔记(二) 创建工程模板+点亮LED+蜂鸣器(IO口的输出)
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- android uiautomator学习(一)创建工程
- STM32F103 SDIO(一)
- Akka学习笔记(一):创建Hello World工程
- Akka学习笔记(一):创建Hello World工程
- Django学习笔记(一)--安装与创建工程
- 如何创建RL_M3工程模板_RTX移植到STM32F103
- cocos2d-x学习<一> 创建工程
- eclipse学习一 如何创建web工程
- stm32f103 RTC周期性待机唤醒(一)
- stm32f103 RTC周期性待机唤醒(一)
- [jzoj 4807]. 【NOIP2016提高A组五校联考3】破解
- [CF 702E]Analysis of Pathes in Functional Graph
- div+css笔记
- Unity3D的学习方法
- LeetCode oj 409. Longest Palindrome (回文串)
- 学习stm32f103(一) 工程创建
- PyCharm使用过程中的问题记录
- DTU:TCP协议的串口数据流传输
- [Extjs6] Ext.draw.Container 添加sprite并添加spriteevents事件处理函数
- nginx 反向代理到node
- JS笔记
- Win7/8 64bit下 安装Oracle10g以及PL/SQL Developer完整教程-精简版
- 编译原理学习笔记
- 字符串匹配的KMP算法思路