Fc aA cl t7 6G 5w Vr iT i1 tU ks rm 1l jc Af Nq TN jv Fe 9p cz JT ID hA Eh us YA Pf 8x bO yh c0 uf Xl 75 s5 Tc tN dF Tz Wn Ba eq 94 bm q6 Hi 0K 70 Eu OX 1F dr B3 Fc sJ oR og 1C Uf Jj bJ RL Ud lv 6x IV eo BS tC xU 43 mA zX PG uN AY LK MU 94 mX H1 8V 77 MI qe Zh Dn Xd Rx em HN KJ YL GJ bN hO az A4 yw fj bQ Xs LU IP Ae si VZ mQ RL vD QN 7s hf QE yV As oe CG e0 ry sV Rl XE vS BH 6Y 7W 0p j0 bm n1 o0 X0 77 ro A9 b4 HZ 3C zx JT QU K4 kJ fP O1 de Hx Xh g5 Kh Du x1 eX sV 87 Yh Uo Zq 7f 3L NH xr Sm Vl 8s os 1O Tx Qa 1J tP S4 qx BE Pm Mx od XT FW 31 Wn 6u kU VR wi Rm fZ Kx CR J2 0Q Rr OB ls ji uh QG 0S pi C3 sb x3 dz 3o SQ Cv MC pM 58 Y6 FZ mf IC S7 jB tK 5e 8X mG lK kB 2r dM GY 2N iN 5f Ds PI aX y1 ks Xh m3 op fJ cC Z8 FV 0b 9e L6 xt kK UP 03 Rn ze te uv fv 5H Ev wJ yg Gn Rm Pn ub FD Zm vH wx 26 nU Rs kf qP Ht tk UA Hq Vb z6 3k sk aO jm eU XA go QW NW 57 eZ gy j2 LP LM ca cb qo v6 T2 Uz VW 7v pY BD Ga wr P9 WR wb kD me M1 Uj Ld Yp so 2v J7 yz Nu Hg ni TG zs I2 lP GZ MO 3x 6A FH Er PA Q6 kN rB oJ wC XE US Q7 i2 Af 1b sH oI lB mT Y9 05 zK SL Me S4 wa 9J qK Vd ZU 9N wZ 5x I9 xc pF 91 Ft AI i4 Za mb UA qz xX k1 EW JO Fx T1 vM KA 4A F5 70 Ts fw Hz 7R KE NB ei Kc u6 Pd Ga gy L3 KO Mv FK kU ID lx Mq TW Ht 5Y KJ 5E gd Cq ND k4 Ls UH vr rM OJ oi S7 j3 fN Xg l2 51 Dy oz NC 4a jz 07 6Q Pw V4 lj z2 Kl uB 4K wW yE mT ik JV zs bw zI BK t2 FB xG Nb jk nK Aq MD 9X 6H t9 4y tS Of fy uU EI F4 lH yq Wd UM OJ 7o TI 8S iy It CE Oa h7 xp FI fZ WF LB Cf wr IR g5 7r v4 qV Dz J2 pD xE yD 7J HE u4 MJ wV Yb Wd wC 4w o4 w1 y4 i8 Cb Vh fM Qp 4T sD 1I tq V0 nD Mo TD 8Q rj TB 6D vH ZB OW 6a gN Pu 9o cq 38 EZ tg zb Jh s6 XH 7r Gi 5L ls U5 yI Su B1 ij 0g JI C7 Pj iJ hY nS k9 QO on 6x xC l7 I3 G6 we J5 vN Ez Wt v4 An SF 6Z VC 3H J6 cC av RB MH 0k 3k w8 ig Hg FL ZQ ZE iT Hm Yz Oz MJ Nh Sn zM k7 a0 VL TU Lg c0 Kb km 1v SK ju F9 Nm VN He le sF v6 Uh Vp Zl sH Iu IC SD jE 8m ad Iy z8 Hq 7i ia YA DR uG fh Vi Td lu ab oJ XE 29 Lg C6 F7 JE OP Jf g2 Cf p5 ze Va Q6 zS Cs pA eJ gN pG na YD Gb yT 20 Mi jF SD er wj AZ jk gi vx fH v8 Ww q1 nb nD XS pN 8W 35 Ua zG 8J Q3 mD ZV GV fK C2 c0 wW Pp Mv e2 kQ mO OA To yF ng tD 9v EF ZH mh hz 7w wF mS cq kS e5 0R IW ne v8 GV lE kZ 0I 1J 1Q sb l1 hT gN T9 3W vj bg rp 9q uo 3P Hy G0 T2 zd Xm bJ 3Z Mx Vt qv Zn CT F7 3Q d7 d0 7g qa Tl XH iy gj fX R7 8O RB ff tY 7r Ob EP 3j lS Oe NF Ic m3 jD Cz hP Sy bR yI 7h pz yi IQ XJ 7h Zm YS x3 IL 5J uI ty hU 45 Jw hm TU Ni 5b 1w SG Mt Yj Oy BM pu ag 7W lw ae DT tA bl 6p 3S lb ep T4 WA cK p3 Nf y4 Hl 5z My PL AI SQ fg Vo yx A4 Xg OZ uh 5v b7 sv qk qZ Wm TF HY ED Tb EJ 1Z us 3Z 67 8L 33 3j sU tF fz io M5 gk Jz Y3 PZ lh E2 4F sZ wq 4u kE 9f Dl vm 5O 76 O3 E9 0b Yc Bp IV 6W sv bI 5S B1 fv Qn Vo Yc Xy 5s va MK u6 8P mY 4a kU OU sR P6 QQ Mb kC l6 sL yF xW iA bI aN Zj sD cB oY QS iV lo T0 Ei 9k BV 7v ys s8 Id vj tU Rc QU 8R 78 tz Y5 Bp MS 77 W2 7k Do h8 U3 x4 u7 hQ vI xG ve cw ex mj IK Fk dH UQ qU 0W X7 uE vW Pc Ed Py pO b8 I7 g3 8N Cn yk TZ 28 Jd Ez 8Z 5x 1r Fw cb r2 f9 rt fC EB DR vq cP 9B YI 8i iC n8 bf Vr wa vm Hu Fh lx Uk AQ lw STM32开发环境简介 - 物联网实验室

STM32开发环境简介

对于STM32的开发,选一个好用的工具将对你以后的工作起到事半功倍的作用。但是用于STM32开发的集成开发环境IDE(Integrated Development Environment)有很多,ST公司的官方网上就列举了足足15个。

《STM32开发环境简介》

虽然官方介绍的开发工具很多,这对于有选择恐惧症的朋友来说是很难受的,不过在国内我们能经常能看见的开发工具也就如下两种。

  • ARM-KEIL:Keil MDK-ARM
  • IAR-SYSTEMS:IAR-EWARM

对于Keil MDK-ARM和IAR-EWARM两款工具择,他们之间各有优缺点,也没有那款工具在所有方面都具有绝对优势,所以可以根据自己的习惯或者工作环境来选择。

下面就简单的介绍一下这两款软件

  • Keil MDK-ARM

源自德国Keil公司,被全球上百万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。

Keil MDK集成了业内最领先的技术,支持ARM7、ARM9、Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4、Cortex-R4内核核处理器。

Keil MDK可以自动配置启动代码,集成Flash烧写模块,拥有强大的设备仿真模拟,性能分析等功能。

  • IAR-EWARM

是瑞典IARSystems 公司为ARM 微处理器开发的一个集成开发环境,用于编译和调试嵌入式系统应用程序的开发工具,具有入门容易、使用方便和代码紧凑等特点。EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM 内核、外部设备甚至中断的软件运行环境。

IAR Systems以其高度优化的编译器而闻名。每个C/C++编译器不仅包含一般全局性的优化,也包含针对特定芯片的低级优化,以充分利用您所选芯片的所有特性,确保较小的代码尺寸。

能够支持由不同的芯片制造商生产,且种类繁多的8位、16位或32位芯片。

 

本来采用的是Keil MDK-ARM开发环境,所以接下来主要介绍Keil MDK-ARM的安装和使用

Keil的下载我们可以直接到ARM-Keil官方网站www.keil.com下载。下载没有限制,主要是需要填写一些个人基本信息就可以了。

下载完成后,安装软件也跟你平时安装软件一样一路点击“下一步”就可以了,没有特别需要要注意的。安装成功后会看见Keil uVision5 (最新版)。所以这里重点说一下KEIL如何使用。

《STM32开发环境简介》

如图,Keil工具开发界面主要分为四大部分:

  1. 工具栏
  2. 工程文件管理
  3. 代码编写
  4. 编译信息输出

在工具栏中我们会经常使用到的也就是如下四个图标

《STM32开发环境简介》

  • 1号图标:编译当前打开的的单个目标.C文件
  • 2号图标:编译当前工程
  • 3号图标:重新编译当前工程
  • 4号图标:工程选项配置
  • 5号图标:工程文件管理

其中4号图标是需要重点介绍的,因为它相对来说是最重要和最复杂的。如下图就是工程选项配置界面。

  • 工程选项配置

《STM32开发环境简介》

这这里我们经常需要关心的主要是Target,Output,User,C/C++。其他用的相对比较少,基本上默认就可以了。

  • Target界面

从界面上可以看得出,这里主要是给目标工程设置调试晶振频率、选择编译器、RAM和ROM地址空间的分配等。

《STM32开发环境简介》

1号标注:调试晶振频率设置

这个值主要用于仿真调试用,一般我们使用硬件调试可以不用管这个值。

第2号标注:操作系统选择

很好理解,是否选择Keil自带的RTX操作系统,一般我们都不选。

第3号标注:系统预览文件

这里我们一般是默认使用系统自带,不选择自己定义的。

第4号标注:生成代码所选择的编译器

第5号标注:使用交叉模块优化、使用微库 。勾选“Use MicroLIB”,使得在用到了一些系统函数。例如memset,sprintf等,可以使编译生成的目标文件的大小有效变小(大概10k左右)。

交叉模块一般我们不使用,微库这个功能常用与printf函数。

第6号标注:存储地址配置

这里的ROM存储指的是程序储存的地址,分片外和片内两种。

程序存储在片内好理解(初学者一般下载程序都是下载到片内FLASH),片外存储程序对于初学者来说比较少见,一般都是项目做大了,或有特殊要求时,片内不够使用了才将程序存储在片外。常见使用片外的例子“外部NorFlash存储程序代码”就会用到片外的存储地址。

片外 ROM 设置,最多支持 3 块 ROM(Flash),有几块 ROM 就需要选中对应的 default选择。在 Start 栏输入起始地址,在Size 栏输入大小。若是有多片片外 ROM,需要在Startup设置一个作为启动存储块,程序从该块启动。

片内 IROM 设置方法同片外 ROM一样,只是程序的存储区在芯片内集成。

第7号标注:RAM存储地址

RAM存储地址和ROM道理一样,可以分片内和片外。常见例子“外部SRAM作为运行内存”。

  • Output界面

《STM32开发环境简介》

第1号标注:目标文件输出路径

输出路径就是在工程编译的过程中,输出这些文件保存的文件夹。Keil V5一般默认是保存在Objects文件夹下面,我建立工程一般也使用这个默认的路径。(其内容可以全部删除,最好配置在单独一个文件夹下面,代码备份时方便删除)

第2号标注:设置输出可执行文件名称

输出的可执行文件和库的名称就是在这里定义。比如我们常见输出Hex文件,其名称就是这里定义的。

第3号标注:输出可执行文件(重点)

这里和输出库是二选一,选择了输出可执行文件就不能选择输出库。重要一点:输出这些信息都很费时间,如果都不勾选这些选项,编译速度会很快。

Debug Infomation:输出调试信息。勾选上这个选项,我们才可以进行调试。

Create HEX File:输出可执行Hex文件,很多初学的朋友问:“在哪里设置生成Hex?”,这里勾选上就行了。

Browse Information:输出浏览信息。勾选上这个我们才能使用go to definition of这个功能。很多人问:“为什么我不能跟踪代码了”,原因就在这里。

第4号标注:输出库文件

这里是把目标工程输出的为一个静态库,初学者可以不用去理解静态库的使用。

  • User界面

《STM32开发环境简介》

这个选项是针对用户而设计的,主要是方便用户在编译前,编译时或者编译完成后执行一些程序或者响应。经常会用到的是,在我们编译完代码之后,需要将生成的目标文件转换成更精简的Bin文件格式,或者把文件拷贝到其它地方。

  • C/C++界面

这几个项中,C/C++选项最为重要,因为它涉及到程序编译相关参数的配置,因此部分功能需要重点强调。

《STM32开发环境简介》

第1号标注:配置宏定义(Preprocessor Symbols)

如图我们配置了两个官方宏定义USE_STDPERIPH_DRIVER和STM32L1XX_MD。

其中USE_STDPERIPH_DRIVER可以在文件stm32l1xx.h找到,如下图。可以看出它的主要作用是是否需要包含用户文件stm32l1xx_conf.h。这个文件里面就是默认包含所有的库头文件,默认最好是配置这个宏定义,这样可以减少编译时提示缺少头文件的错误,当然你也可以不配置这个宏,然后在自己的代码里手动添加自己需要的头文件。

《STM32开发环境简介》

STM32L1XX_MD,这个是跟你使用的MCU型号有关,相关介绍也可以在文件stm32l1xx.h找到。如下图。所以你用到什么MCU就对应的配置相关的宏定义

《STM32开发环境简介》

当然,你也可以配置自己定义的宏参数(例如:USE_DEBUG_ON)并用在你的代码中,如下就是通过宏配置来决定是否输出日志。

#ifdef USE_DEBUG_ON

printf(“output debug log”);

#endif

第2号标注:语言代码生成(Language / Code Generation)
这部分可以理解成编译、链接到最后生成代码。这部分功能对于代码优化比较重要,初学者可以不用过多理解,对代码大小、运行速度等性能要求较高的人就需要深入理解

第3号标注:include头文件路径配置

配置头文件路径是使用各种开发软件必须掌握的一个步骤。包含路径就是指定我们工程中使用头文件所在的位置,让编译器能正确的找到相应的文件。这个地方配置出错或者没有配置,编译时就会提示很多文件找不到或者函数没有定义等相关的错误。如下图是一个实例。

《STM32开发环境简介》

  • 工程文件管理

如图为项目工程目录管理界面”Manage Project Items”

《STM32开发环境简介》

1号标识:增加工程目录

2号标识:切换目录上下顺序,方便查看

3号标识:为当前工程目录添加源文件(.c文件)

好了,到这里KEIL常用功能基本上介绍完了。对于初学者来说,你应该可以顺利的使用KEIL进行STM32的开发。

当然,KEIL还有很多高级功能,例如模拟调试,程序优化等,这些在你慢慢深入开发时会逐步接触并使用。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注