学习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)  {  }}


这里简单的实现了我的小stm32板上的一个led的点亮


第八步:编译


没任何问题的话,就不会报错了


第九步:下载到板子上去

这里我用的是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成功的被点亮,可喜可贺!

0 0
原创粉丝点击