基于ARM单片机应用与实践课件第四章_第1页
基于ARM单片机应用与实践课件第四章_第2页
基于ARM单片机应用与实践课件第四章_第3页
基于ARM单片机应用与实践课件第四章_第4页
基于ARM单片机应用与实践课件第四章_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ARM单片机应用与实践课件第四章基于ARM单片机应用与实践课件第四章基于ARM单片机应用与实践课件第四章4.1MDK-ARM4.70简介Keil公司开发的ARM开发工具MDK,是用来开发基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的KeilC编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,易于学习和使用,同时具有强大的功能,适用于多数要求严苛的嵌入式应用程序开发。图1MDK开发工具的组件通过阅读报刊,我们能增长见识,扩大自己的知识面。基于ARM单片机应用与实践课件第四章基于ARM单片机应用与实14.1MDK-ARM4.70简介Keil公司开发的ARM开发工具MDK,是用来开发基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的KeilC编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,易于学习和使用,同时具有强大的功能,适用于多数要求严苛的嵌入式应用程序开发。图1MDK开发工具的组件4.1MDK-ARM4.70简介Keil公司开发的ARM开24.1MDK-ARM4.70简介MDK的特点MDK-ARM软件主要特点如下:■完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。■ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行。■为带图形用户接口的嵌入式系统提供了完善的GUI库支持。■行业领先的ARMC/C++编译工具链。■确定的KeilRTX,小封装实时操作系统(带源码)。■TCP/IP网络套件提供多种的协议和各种应用。4.1MDK-ARM4.70简介MDK的特点MDK-A34.2新建MDK工程如何新建MDK工程?■安装开发环境和调试驱动程序■创建一个工程并配置工程■编写程序、下载、调试4.2新建MDK工程如何新建MDK工程?■安装开发环境和调试44.2新建MDK工程4.2新建MDK工程5选择工具栏Project->NewμVisionProject…新建我们的工程文件,我们将新建的工程文件保存在桌面的STM32-Template\USER文件夹下(先在电脑桌面上新建一STM32-Template文件夹,在STM32-Template里面新建一个USER文件夹),文件名取为STM32-DEMO,名字可以随便取,点击保存。最终效果如下图所示。创建一个工程并配置工程4.2新建MDK工程选择工具栏Project->NewμVisionPro64.2新建MDK工程4.2新建MDK工程7此时工程新建成功,接下来需要添加文件,具体操作如下所述:在STM32-Template文件夹下,新建四个文件夹,分别为FWlib、CMSIS、Uotput、Listing。原先新建的USER用来存放工程文件和用户代码,包括主函数main.c。FWlib用来存放STM32库里面的inc和src这两个文件,这两个文件包含了芯片上的所有驱动。CMSIS用来存放库为我们自带的启动文件和一些M3系列通用的文件。CMSIS里面存放的文件适合任何M3内核的单片机。Output用来保存软件编译后输出的文件,Listing用来存放一些编译过程中产生的文件。最终效果如下图所示。

4.2新建MDK工程此时工程新建成功,接下来需要添加文件,具体操作如下所述:4.84.2新建MDK工程4.2新建MDK工程9选择芯片型号,我们使用ST公司的STM32F103VET6,则选择对应型号,单击“ok”键。弹出窗口问我们是否需要拷贝STM32的启动代码到工程文件中,这份启动代码在M3系列中都是适用的,一般情况下我们都点击是,但我们这里用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里我们点击“否”。最终效果如下图所示。

4.2新建MDK工程选择芯片型号,我们使用ST公司的STM32F103VET6,104.2新建MDK工程4.2新建MDK工程113.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver的inc跟src这两个文件夹拷贝到STM32-Template\FWlib文件夹中。最终效果如下图所示。4.2新建MDK工程3.5.0\STM32F10x_StdPeriph_Lib_123.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm的全部文件拷贝到STM32-Template\CMSIS\startup(需先在CMSIS新建好startup文件夹)文件夹下。我们把startup_stm32f10x_hd.s添加到我们的工程中。3.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport文件目录中的core_cm3.c和core_cm3.h也拷贝到STM32-Template\CMSIS文件夹下。3.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件目录中的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h拷贝到STM32-Template\CMSIS文件夹下。最终效果如下图所示。4.2新建MDK工程3.5.0\3.5.0\STM32F10x_StdPerip134.2新建MDK工程4.2新建MDK工程143.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的main.c、stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c、system_stm32f10x.c拷贝到STM32-Template\USER目录下。最终效果如下图所示。4.2新建MDK工程3.5.0\3.5.0\STM32F10x_StdPerip154.2新建MDK工程4.2新建MDK工程16此时我们新进的工程目录如下所示:4.2新建MDK工程此时我们新进的工程目录如下所示:4.2新建MDK工程17到我们刚刚新建的MDK工程中,将Target改为STM32-DEMO(不改也行)。最终效果如下图所示。4.2新建MDK工程到我们刚刚新建的MDK工程中,将Target改为STM32-18在STM32-DEMO上右键选中AddGroup…选项,新建四个组,分别命名为STARTCODE、USER、FWlib、CMSIS。STARTCODE用它来放我们的启动代码的,最终效果如下图。4.2新建MDK工程在STM32-DEMO上右键选中AddGroup…选项,新194.2新建MDK工程至于有些文件有个锁的图标,是因为这些都是库文件,不需要我们修改,属性为只读。至此,工程基本建好。接下来配置一下MDK的配置选项,单击按钮,在弹出来的窗口中选中“Output”选项。点击SelectFolderforObjects...设置编译,输出文件保存的位置。同时选上CreateHEXFile和Browseinformation这两个选项框。最终效果如下图所示。4.2新建MDK工程至于有些文件有个锁的图标,是因为这些都是204.2新建MDK工程4.2新建MDK工程21同样在Listing这个选项卡中,我们也点击SelectFolderlistings…定位到模板中的Listing文件夹。选中C/C++选项卡,在Define里面输入添加USE_STDPERIPH_DRIVER,STM32F10X_HD。最终效果如下图所示。4.2新建MDK工程同样在Listing这个选项卡中,我们也点击Select22在单击IncludePaths栏,在这里添加库文件的搜索路径,这样就可以屏蔽掉默认的搜索路径。最终效果如下图所示。4.2新建MDK工程在单击IncludePaths栏,在这里添加库文件的搜索路23但当编译器在我们指定的路径下搜索不到的话还是会回到标准目录去搜索,就像有些ANSICC的库文件,如stdin.h、stdio.h。库文件路径修改成功之后如下所示:

4.2新建MDK工程但当编译器在我们指定的路径下搜索不到的话还是会回到标准目录244.3RVMDKS使用技巧文本美化文本美化,主要是设置一些关键字、注释、数字等的颜色和字体。前面我们在介绍RVMDK新建工程的时候看到界面如下图所示。4.3RVMDKS使用技巧文本美化文本美化,主要是设置一些关254.3RVMDKS使用技巧4.3RVMDKS使用技巧26这是MDK默认的设置,可以看到其中的关键字和注释等字体的颜色不是很漂亮,而MDK提供了我们自定义字体颜色的功能。我们可以在工具条上点击(编辑配置对话框)弹出如下图所示界面。4.3RVMDKS使用技巧这是MDK默认的设置,可以看到其中的关键字和注释等字体的颜274.3RVMDKS使用技巧4.3RVMDKS使用技巧28在该对话框中我们选择Colors&Fonts选项卡,在该选项卡内,我们就可以设置自己的代码的子体和颜色了。由于我们使用的是C语言,故在TextFileTypes下面选择ARM:EditorCFiles在右边就可以看到相应的元素了。最终效果如下图所示。4.3RVMDKS使用技巧在该对话框中我们选择Colors&Fonts选项卡,在该选294.3RVMDKS使用技巧4.3RVMDKS使用技巧30然后点击各个元素修改为你喜欢的颜色,当然也可以在Font栏设置你字体的类型,以与字体的大小等。设置成之后,点击OK,就可以在主界面看到你所修改后的结果,例如我修改后的代码显示效果如下图所示:4.3RVMDKS使用技巧然后点击各个元素修改为你喜欢的颜色,当然也可以在Font栏31TAB键的妙用MDK的TAB键和一般编译器的TAB键有不同的地方,和C++的TAB键差不多。MDK的TAB键支持块操作。也就是可以让一片代码整体右移固定的几个位,也可以SHIFT+TAB键整体左移固定的几个位。假设我们前面的串口1中断响应函数如下图所示。4.3RVMDKS使用技巧TAB键的妙用MDK的TAB键和一般编译器的TAB键有324.3RVMDKS使用技巧4.3RVMDKS使用技巧33上图中这样的代码大家肯定不会喜欢,这还只是短短的30来行代码,如果你的代码有几千行,全部是这个样子,不头大才怪。看到这样的代码我们就可以通过TAB键的妙用来快速修改为比较规范的代码格式。选中一块然后按TAB键,你可以看到整块代码都跟着右移了一定距离,如下图示。4.3RVMDKS使用技巧上图中这样的代码大家肯定不会喜欢,这还只是短短的30来344.3RVMDKS使用技巧4.3RVMDKS使用技巧35接下来我们就是要多选几次,然后多按几次TAB键就可以达到迅速使代码规范化的目的,最终效果如下图所示。4.3RVMDKS使用技巧接下来我们就是要多选几次,然后多按几次TAB键就可以达到迅36快速定位函数/变量被定义的地方大家在调试代码或编写代码的时候,一定有想看看某个函数是在那个地方定义的,具体里面的内容是怎么样的,也可能想看看某个变量或数组是在哪个地方定义的等。只要你把光标放到这个函数/变量(xxx)的上面(xxx为你想要查看的函数或变量的名字),然后右键,弹出如下图所示的菜单栏。4.3RVMDKS使用技巧快速定位函数/变量被定义的地方大家在调试代码或编写代码的时候374.3RVMDKS使用技巧4.3RVMDKS使用技巧38在上图中,我们找到GotoDefinitionOf‘STM32_Clock_Init’这个地方,然后单击左键就可以快速跳到STM32_Clock_Init函数的定义处(注意要先在OptionsforTarget的Output选项卡里面勾选BrowseInformation选项,再编译,再定位,否则无法定位!)。如下图所示。4.3RVMDKS使用技巧在上图中,我们找到GotoDefinitionO394.3RVMDKS使用技巧4.3RVMDKS使用技巧40快速注释与快速消注释在调试代码的时候,你可能会想注释某一片的代码,来看看执行的情况,MDK提供了这样的快速注释/消注释块代码的功能。也是通过右键实现的。这个操作比较简单,就是先选中你要注释的代码区,然后右键,选择Advanced->CommentSelection就可以了。以Stm32_Clock_Init函数为例,比如我要注释掉下图中所选中区域的代码,如下图所示。4.3RVMDKS使用技巧快速注释与快速消注释在调试代码的时候,你可能会想注释某一片的414.3RVMDKS使用技巧4.3RVMDKS使用技巧42我们只要在选中了之后,选择右键,再选择Advanced->CommentSelection就可以把这段代码注释掉了。执行这个操作以后的结果如下图所示:4.3RVMDKS使用技巧我们只要在选中了之后,选择右键,再选择Advanced->434.4RVMDKS调试技巧接下来我们用一个实例,来说明如何参考MDK的例子为自己所用。这里以一个IO口翻转为例,其实就是LED的闪烁,看看如何借用MDK的代码。首先打开D\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Examples目录,可以看到很多例子,如下图所示。4.4RVMDKS调试技巧接下来我们用一个实例,来说明如何参444.4RVMDKS调试技巧4.4RVMDKS调试技巧45上图中提供的例程IO口翻转的例子在GPIO目录下的IOToggle下,我们将这个目录下面的所有文件拷贝到D:\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Project里面,这里会提示下图所示的信息:4.4RVMDKS调试技巧上图中提供的例程IO口翻转的例子在GPIO目录下的IO46我们选择全部就可以了。然后单击Project.Uv2,打开工程,如下图所示:4.4RVMDKS调试技巧我们选择全部就可以了。然后单击Project.Uv2,打开47然后点击,编译一遍。可以看到如下图所示的编译结果:4.4RVMDKS调试技巧然后点击,编译一遍。可以看到如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论