1嵌入式系统之STM32F1STM32F103ZET6实验指导书嵌入式系统之STM32F1实验指导书合肥求精电子有限公司2嵌入式系统之STM32F1STM32F103ZET6实验指导书一、开发环境搭建在这一节里,我们将会学习到常用的程序开发软件的安装。有MDK5集成开发环境,它集编辑、编译(或汇编)、仿真调试等功能与一体。还有串口驱动PL2303和CH430,用于STM32串口程序下载。(一)MDK5安装。1.打开实习包-工具包-keil5文件夹。能看到两个文件夹,分别是keil注册机和器件支持包pack库。前者的作用是破解keil5,如果没有破解的话代码不能超过2K,超过则会出错。后者的作用对我们使用的芯片就行支持。当然这里面的文件可以在我们安装完成keil后,使用其下载安装。剩下两个软件是keil5的安装包。C51V953是51系列单片机安装包,mdk512是ARM系列单片机的安装包。只要两者安装在同一个文件夹便可以一起使用,不过得先安装C51V953,然后安装mdk512。两者的安装过程是差不多。在这里我们以mdk512为例。2.双击打开mdk512,然后点击NEXT。3.在出现的新界面勾选上复选框,然后点击NEXT。3嵌入式系统之STM32F1STM32F103ZET6实验指导书4.选择安装路径。core是keil5核心的安装路径。Pack是器件支持包的路径。点击对应的Browse…可改变路径。但是一定不让路径里面出现中文文件夹,一个也不行。改完后点击NEXT。5.四个文本输入框可以随便填,不影响功能。输入完成后点击NEXT。便开始安装。6.安装完成点击FINISH。7.然后在跳出来的窗口点击OK。这个界面便是下载安装器件支持包。因为我们已经下载好了。所以的关掉这个界面。4嵌入式系统之STM32F1STM32F103ZET6实验指导书8.点击右上角的X。在弹出的对话框点击是。然后再在弹出的新对话框点击否。9.如果在以上安装的过程中出现驱动的安装的对话框则点击安装,这是仿真器的驱动。10.然后安装我们下载好的器件支持包。打开实习包-工具包-keil5-pack库文件夹。我们是用的是STM32F1,所以双击Keil.STM32F1xx_DFP.1.0.5安装便可以了。如果要使用STM32F4系列的便可以安装Keil.CM4xx_DFP.1.0.1和Keil.STM32F4xx_DFP.2.2.0。双击打开后点击Next,便开始安装,安装完成后关闭。11.找到在桌面生成的keiluVision5图标,右击,在弹出的菜单点击属性。选择以管理员的身份运行此程序。如果是WIN7则点击兼容性选项卡,然后勾选特权等级的以管理员身份运行此程序。5嵌入式系统之STM32F1STM32F103ZET6实验指导书如果是WIN8则点击快捷方式选项卡,点击高级。勾选用管理员身份运行此程序。完成设置后双击打开keil5。出现以下界面。单击菜单栏上的File。然后在弹出来的菜单选择LicenseManagement…(许可证管理)。6嵌入式系统之STM32F1STM32F103ZET6实验指导书接着复制CID。12.接下来我们进行KEIL5的破解。打开实习包-工具包-keil5-keil注册机文件夹。然后双击打开KEIL_LIC软件。会出现以下界面。1.CID是本机keil5的ID号,2.Target是选择使用的内核,3的下拉菜单式选择使用的版本,4是生成的注册码。7嵌入式系统之STM32F1STM32F103ZET6实验指导书13.粘贴CID到CID文本编辑框。Target选择ARM内核(如果使用的是51单片机则选择C51)。点击Generate按键,生存注册码。然后复制注册码。14.回到keil5的许可证管理界面。把复制的注册码粘贴到NewLincenseIDcode(LIC):对应的文本编辑框里。然后点击AddLIC按钮。在下面后显示出”LICAddedSuccessfully”。这就表示添加成功,keil也就破解完成了。(二)USB转串口驱动安装1.实习包的串口驱动有两种,一种是PL2303的驱动,另一种是CH340的驱动。使用哪种便安装哪种驱动。我们现在使用的是PL2303。打开PL2303驱动。如果系统是XP则打开XP文件夹,双击PL-2303DriverInstaller,否则打开WIN7文件夹。双击PL2303_Prolific_DriverInstaller_v1.5.0软件安装。安装比较简单这里就不详细解说了。如果使用的CH340的话,则打开CH340驱动(USB串口驱动)_XP_WIN7共用文件夹,然后双击SETUP,然后在弹出的界面点击安装。2.接下来测试驱动是否安装成功或者下载线是否是好的。把下载线插到电脑的USB接口上,然后打开电脑的设备管理器。8嵌入式系统之STM32F1STM32F103ZET6实验指导书操作系统是WIN7:第一步右键桌面的【计算机】图标,可以选择【管理】或者【属性】。都能从不同入口找到设备管理器。第二步从计算机【管理】中可以看到设备管理器。第三步计算机【属性】中可以看到计算机的系统属性和【设备管理器】9嵌入式系统之STM32F1STM32F103ZET6实验指导书操作系统是WIN8:【窗口键win+字母X】,在弹出的菜单出,点击设备管理器按钮,如图红框所示进入设备管理器后,找一下有没有端口(COM和LPT)这一栏,如果没有则驱动或者下载线有问题。如果有,则看一下ProligicUSB-to-SerialCommPort(COM5)(不同电脑或者USB口时端口号可能不一样)前面有没有黄色的感叹号标志,如果有则驱动或者下载线有问题。正常情况如下图所示。找一条确定是好的下载线插到USB口,再看看设备管理器的端口是否显示正常。正常则是下载线坏了。不正常则重新安装串口驱动。如果你的电脑是WIN8以上的,然后端口上有黄色感叹号的话,那便是驱动不兼容。可进行如下操作:10嵌入式系统之STM32F1STM32F103ZET6实验指导书首先选中ProligicUSB-to-SerialCommPort(COM5),然后右击。点击更新驱动程序软件(P)…。点击浏览计算机以查找驱动程序软件(R)。点击从计算机的设备驱动程序列表中选择(L)11嵌入式系统之STM32F1STM32F103ZET6实验指导书然后在驱动列表中选择一个驱动,然后点击下一步。安装完成后如下图所示便是成功,如果不是则选择列表中的其他驱动直到成功。到此基本上的软件开发环境便安装完成了。12嵌入式系统之STM32F1STM32F103ZET6实验指导书二、软件的使用介绍这一节里,我们主要熟悉keil5菜单栏和工具栏以及软件的配置,还有学会程序下载软件的使用。2.1MDK5的使用2.1.1MDK5的简介有许多商业的开发平台可以用在CM3上,其中最流行的之一就是KEIL的RealViewMicrocontrollerDevelopmentKit(简称RealViewMDK或RVMDK)。RVMDK的前身就是曾一度在8051开发业界享有盛誉的KEIL套件。RVMDK包含了很丰满的组件:uVision集成开发环境调试器模拟器由ARM提供的RealView工具链C/C++编译器汇编器连接器RTX实时内核为各单片机而设的详细启动代码(包含源代码)各种Flash的编程算法程序示例(英蓓特还把RVMDK的帮助文件翻译成了中文,并包装成“中国版”的RVMDK——译者注)。使用RVMDK来学习CM3,甚至不需要拥有CM3硬件——uVison环境包含了指令模拟器,使用它可以测试“纯粹”的CM3程序代码,对于学习和开发基于内核的系统软件都很有好处。RVMDK还可以与GNU工具链一起使用。可以从KEIL网站上获取免费的KEILtool之演示版,也可以从使用技巧之格式设置格式设置主要是字体编码的选择,Tab键的设置和代码字体大小颜色设置等。可通过工具栏按钮进入Configuration(配置)界面。或者通过菜单栏的Eidt(编辑)-Configuration…(配置)进入。我们把字体编码Encoding改成ChineseGB2312(Simplified),这样子就能很好的支持中文了,可以把keil里面和其他地方的中文互相拷贝而不出现乱码。由于我们使用的是C语言,把C/C++里的Tabsize:设置为4。每当按下Tab键就是空4格。以后对程序的缩进,便可使用Tab键。这里涉及到编程的修养。13嵌入式系统之STM32F1STM32F103ZET6实验指导书然后代码字体颜色等的设置可点击Colors&Fonts。在Window栏选择C/C++Editorfiles。Element就是选择要设置哪种代码的字体。Text为普通文本,Number是数字,BlockComment是由/**/标注起来的注释。LineComment是由//标注起来的注释。Keyword是关键字。String是字符串。Character是字符。剩下的可以自己尝试。只要选择这些元素便可设置对应代码的字体,大小,颜色了。有时候需要临时改变字体大小,可以直接按住Ctr,滚动鼠标滚轮,进行放大或缩小。接着设置自定义的关键字,在STM32的代码上会看到uint16_t(无符号16位整型)或者INT8U(无符号8位整型),这是函数库给unsignedshorint或者unsignedchar新起了一个名字。就像我们使用宏定义#defineuintunsignedint这样。我们点击UserKeywords也可以设置这些自定义的关键词的颜色。选择C/C++Editorfiles。然后在UserKeywords对话框按新建按钮,填入自己定义的关键词。填写完成后按OK结束所有的设置。14嵌入式系统之STM32F1STM32F103ZET6实验指导书2.1.3语法检测&代码提示MDK4.70以上的版本,新增了代码提示与动态语法检测功能,使得MDK的编辑器越来越好用了,这里我们简单说一下如何设置,同样,通过工具栏按钮进入Configuration(配置)界面。或者通过菜单栏的Eidt(编辑)-Configuration…(配置)进入。选择TextCompletion选项卡,如图下图所示:Strut/ClassMembers,用于开启结构体/类成员提示功能。当我们输入.或者-要写结构体的成员时,会如上图所示显示这个结构体类型的所有成员供我们选择。单击即可选择。FunctionParameters,用于开启函数参数提示功能。此功能可在我们输入函数的(时显示函数的声明。15嵌入式系统之STM32F1STM32F103ZET6实验指导书Symbolsafterxxcharacters,用于开启代码提示功能,即在输入多少个字符以后,提示匹配的内容(比如函数名字、结构体名字、变量名字等),这里默认设置3个字符以后,就开始提示。DynamicSyntaxChecking,则用于开启动态语法检测,比如编写的代码存在语法错误的时候,会在对应行前面出现图标,如出现警告,则会出现图标,将鼠标光标放图标上面,则会提示产生的错误/警告的原因。然后在错误的地方下面有红色波浪线。2.1.4快速定位函数/变量被定义的地方大家在调试代码或编写代码的时候,一定有想看看某个函数是在那个地方定义的,具体里面的内容是怎么样的,也可能想看看某个变量或数组是在哪个地方定义的等。尤其在调试代码或者看别人代码的时候,如果编译器没有快速定位的功能的时候,你只能慢慢的自己找,代码量比较少还好,如果代码量一大,那就郁闷了,有时候要花很久的时间来找这个函数到底在哪里。幸好MDK提供了这样的快速定位的功能(顺便说一下CVAVR的2.0以后的版本也有这个功能)。只要你把光标放到这个函数/变量(xxx)的上面(xxx为你想要查看的函数或变量的名。点击GotoDefin