STM32入门笔记:STM32+ST-Link
ST-link仿真器跟一块最小系统的STM32开发板都买回来好久了,到最近终于有空开始动手学习。
--|||在ST-Link配的光盘里有个J-Link的介绍文档跟驱动程序,结果我就看完把驱动一装,连上开发板按着教程开始想烧录个程序进去试试。结果一直无法识别到J-Link设备…我居然还上旺旺找买仿真器的那个卖家问为什么我发现不了设备,我的仿真器上面的灯不亮?卖家问了下情况后很纳闷:你买的是ST-Link当然用J-Link的驱动程序连接不到设备啦…当时自己也被自己这个乌龙给雷到了。
好吧,又接着问了一下,原来ST-Link不用装驱动,但是用ST-Link无法像使用J-Link那样直接烧录程序到芯片FLASH里,可以再IAR里DownloadandDebug烧进去。其实给STM32烧程序可以使用ISP的…我开始一直以为一定要用JTEG接口,又一个乌龙。
手上的开发版的ISP是一个232的母头,X200根本没有232串口接口,所以还是使用ST-Link来下程序吧,顺便试试仿真。目标很简单,先能编译通过程序,把编译完的程序烧进去芯片FLASH里面再说。
把STM32程序包里面得Libraries文件夹也拷出来,放到项目文件夹里面。
再把程序包里ProjectTemplate里面的main.cstm32f10x_conf.hstm32f10x_it.hstm32f10x_it.c4个文件拷到项目文件夹中。
最后把ProjectTemplateEWARMv5里面的文件也拷出来到项目文件夹里。
打开IAR,新建一个project,选择芯片为ARM,Empeyproject。保存到项目文件夹里。
然后可以开始添加Group跟Files。
在Project上点右键,在弹出的菜单中选择Options进行项目设置:
1.在GeneralOptions-Target-Device里面选择芯片的信号:STM32F10xxB
2.在C/C++compiter-Additionalincludedirectories里面填写上编译文件的位置,也就是那些.h文件的位置。用$PROJ_DIR$表示项目文件夹。
3.把C/C++compiter-list里面的Outputlistfile以及其子选项全部选上。
4.在Liner-Config里面的Linerconfigurationfile里选择到合适连接文件路径,我现在想把程序烧进内部FLASH里面,所以选择stm32f10x_flash.icf
5.在Debugger-setup里面的Device里面选择ST-Link。
6.在Debugger-Download里面把VerifyDownload跟useflashdownloader两个选项勾选上。
上面的选项是在IAREWARM5.4版本里面的设置,跟在网上很多找到的4.X版本的设置不太一样…开始搞的一头雾水…新版本很多不用设置了,而且linker那里load的是.inf文件而不是以前的.xml之类的XX。
设置完确定,就可以试验下RebuildAll了。会出现很多的警告,把Drivers文件夹里面的C文件都加上#include"stm32f10x_conf.h"声明下类型,在Rebuld一次,就可以0warning通过了。
在Project菜单下选择:DownloadandDebug,就能把程序下载到STM32的FLASH里面,并进行仿真了。
不过因为我试验用的是一个空的main文件,所以仿真看不到什么效果--…明天再看看STM32的GPIO说明,试验下跑马灯…哎又回到了N年前开始学单片机的内容了。