打印
[应用相关]

STM32起步过程

[复制链接]
674|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1、安装MDK环境,下载程序的第三方软件mcuisp。
       BOOT0开关拨到VCC、自动搜索串口、开始编程按钮,如果程序下载成功后则会打印出下面红色框中的信息、程序下载成功之后,需要将BOOT0开关拨
到GND,然后按下我们的复位按键就可以看到实验想象了(也可以通过如下设置)。
       开始编程按钮时,还会出现mcuisp一直处于连接的状态,导致程序下载不了,如下截图所示。解决的方法是只需我们按一下开发板中的复位按键即可。
   2.在线调试器、JLINK 驱动安装与MDK环境搭建。
   3.如何新建工程模板。
     新建工程,选择芯片型号、接下来的窗口问我们是否需要拷贝STM32的启动代码到工程文件中,这份启动代码在M3系列中都是适用的,一般情况下我们都点击是,但我们这里用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了。
   在文件夹建立五个子文件夹,FWlib(用于存放STM32库文件)、CMSIS(ARM_C处理器软件接口)、output(用来保存软件编译后输出的文件)、Listing(存放一些编译过程中产生的文件)、USER(用来存放工程文件和用户代码)。     main.c、stm32f10x_conf.h、stm32f10x_it.h、 stm32f10x_it.c 、system_stm32f10x.c 到\USER目录下。 stm32f10x_it.h、和stm32f10x_it.c这两个文件里面是中断函数,里面为空,并没有写任何的中断服务程序。stm32f10x_conf.h是用户需要配置的头文件,当我们需要用到芯片中的某部分外设的驱动时,我们只需要在该文件下将该驱动的头文件包含进来即可,片上外设的驱动在src文件夹中,inc文件夹里面是它们的头文件。这三个文件是用户在编程时需要修改的文件,其他库文件一般不需要修改。system_stm32f10x.c是ARM公司提供的符合CMSIS标准的库文件,等下我们把这个文件移动到\CMSIS这个文件夹中。
     需先在CMSIS新建好startup文件夹,用于存放这些是用汇编写的启动文件。core_cm3.c和core_cm3.h也拷贝到\CMSIS文件夹下。stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h拷贝到\CMSIS文件夹下。(这些均是STM32的库函数,启动代码等)
     基本完成了,右键单击工程名称,打开“Manage Components”窗口,或点击工具栏上的品字图标。将Project Targets下的Target改名为自己想要的,即可。
     然后就是需要建立用户组了,右键选中Add Group……,建立我们所需的四个用户组。
     再来给每个用户组添加文件。
     最后设置软件:工程已经基本建好,下面来配置一下MDK的配置选项,点击工具栏中的魔术棒按钮 ,在弹出来的窗口中选中 Output。然后点击Select Folder for Objects...    设置编译后输出文件保存的位置。同时把 Create HEX File 和 Browse information这两个选项框也选上。(我们曾经设定的路径文件夹)
    选中“C++”选项卡,在Define里面输入添加USE_STDPERIPH_DRIVER,STM3210X_HD。添加USE_STDPERIPH_DRIVER是为了屏蔽编译器的默认搜索路径,转而使用我们添加到工程中的ST的库,添加STM32F10X_HD是因为我们用的芯片是大容量的,添加了STM32F10X_HD这个宏之后,库文件里面为大容量定义的寄存器我们就可以用了。添加USE_STDPERIPH_DRIVER是为了屏蔽编译器的默认搜索路径,转而使用我们添加到工程中的ST的库,添加STM32F10X_HD是因为我们用的芯片是大容量的,添加了STM32F10X_HD这个宏之后,库文件里面为大容量定义的寄存器我们就可以用了。
    在Include Paths栏点击,在这里添加库文件的搜索路径,这样就可以屏蔽掉默认的搜索路径。但当编译器在我们指定的路径下 搜索不到的话还是会回到标准目录去搜索,就像有些ANSIC   C  的库文件,如 stdin.h 、stdio.h。但当编译器在我们指定的路径下 搜索不到的话还是会回到标准目录去搜索,就像有些ANSIC   C  的库文件,如 stdin.h 、stdio.h。


最后一步,就是修改main.c文件。
   #include "stm32f10x.h"   
    int main(void)   
  {   
        while(1);   
        // add your code here ^_^。   
  }  至此,我们的工程模板就建成了。

使用特权

评论回复
沙发
xinpian101| | 2019-5-14 21:12 | 只看该作者
这种操作第一次见。

使用特权

评论回复
板凳
wakayi| | 2019-6-12 10:41 | 只看该作者
这个  不了解keil

使用特权

评论回复
地板
wowu| | 2019-6-12 10:44 | 只看该作者
感觉过程怪怪的

使用特权

评论回复
5
xiaoqizi| | 2019-6-12 10:48 | 只看该作者
还没有用过mdk呢  

使用特权

评论回复
6
木木guainv| | 2019-6-12 10:51 | 只看该作者
这个软件是哪里来的啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

212

帖子

1

粉丝