STM32起步过程 - Go语言中文社区

STM32起步过程


  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 ^_^。   
  }  至此,我们的工程模板就建成了。

转载于:https://www.cnblogs.com/wangh0802PositiveANDupward/archive/2012/12/24/2830721.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_34268310/article/details/94752171
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 20:21:22
  • 阅读 ( 3226 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢