使用keil进行stm32单片机开发的流程 -回复
- 格式:doc
- 大小:12.07 KB
- 文档页数:3
Keil uVision5中建Stm32工程教程本教程中,介绍在Keil uVision5中建STM32工程的两种方法:一种是利用固件库建立工程,另一种是通过建工程时软件给的引导直接完成。
软件的安装和破解网上教程很多,这里就不赘述了,直接从建立工程开始。
首先介绍第一种:利用固件库建立STM32工程1.在你电脑中想要建立工程的地方先新建一个文件夹。
这里我在E盘下新建了一个文件夹,命名为STM32Project。
2.在新建的STM32Project文件夹下再新建一个文件夹,命名为STM32固件库,然后把事先下载的固件库放在文件夹中,方便查找进行复制。
3.打开Keil uVision5软件,在软件的菜单栏中找到Project——>New uVisionProject…,单击,找到上述新建的文件夹,对新建的工程进行命名,这里命名为test,点击保存。
4.此时软件弹出一个选择芯片的窗口:“Select Device for Target ‘Target 1’…”,在左侧的芯片库中找到你要使用的STM32系列的芯片,这里选择的是STMicroelectronics——>STM32F1 Series——>STM32F103——>STM32F103RC,单击OK。
5.此时弹出一个窗口:“Manage Run-Time Environment”,这个窗口在第二个建工程的方法中会使用到,这里先直接点击OK,跳过。
6.现在开始添加相关文件。
在STM32Project文件夹中新建以下四个文件夹:user:放置用户自己编写的相关文件CMSIS:放置与内核相关的文件startup:放置启动单片机的汇编文件driver:放置外设操作的驱动文件再向这四个文件夹中添加固件库中的相关文件:user:STM32Project\STM32固件库\STM32F10x_StdPeriph_Lib_V3.5.0 \Project\STM32F10x_StdPeriph_Template中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h一共3个文件复制粘贴到user文件夹中,同时新建一个文本文档,重命名为main.c。
在KeiluVision4MDK下配置开发STM32F103Z完整教程环境搭建:1、安装 Keil uVision4 MDK略2、安装 J-Link安装 Setup_JLinkARM_V4501.exe 驱动时,会弹出【SEGGER J-Link DLL Updater V4.501 】对话框,不要选择 Keil 直接点击OK即可,因为Keil对⽀持M3内核SW接⼝采⽤了JL2CM3.dll 这个⽂件,该⽂件的版本号是和该⽬录下Jlink驱动版本号配套的,不要擅⾃改变他们,否则不能使⽤。
建⽴⼯程:1、在桌⾯上建⽴⼀个⽂件夹【MyStm32】⽂件夹2、在【MyStm32】⽂件夹下建⽴【USER】、【FWlib】、【CMSIS】、【Output】、【Listing】⽂件夹。
【USER】:存放⽤户⾃定义的应⽤程序【FWlib】:存放库⽂件【CMSIS】:存放M3系列单⽚机通⽤的⽂件【Output】:存放编译器编译后输出的⽂件【Listing】:编译器编译过程中产⽣的⽂件3、将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 的【inc】跟【src】这两个⽂件夹拷贝到【FWlib】。
【inc】、【src】⽚上外设驱动的源⽂件和头⽂件。
4、\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下的main.c、stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c 、system_stm32f10x.c 拷贝到【USER】stm32f10x_conf.h:配置⽂件stm32f10x_it.h、stm32f10x_it.c:中断函数⽂件。
system_stm32f10x.c:ARM公司提供的符合CMSIS标准的库⽂件5、STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup的【arm】⽂件夹的拷贝到 MyStm32\CMSIS\startup。
Keil 如何进行 STM32 的程序开发在 STM32 的程序开发中,Keil 是开发者很常用的工具,因为它提供了完整且易于使用的开发环境和工具链,包含了 C 语言编译器、调试器和 IDE 等,可以帮助开发者完成从编写代码到编译、下载、调试等一系列操作。
本文将介绍如何使用 Keil 进行 STM32 的程序开发。
安装 Keil首先,我们需要安装 Keil 软件。
进入 Keil 的官网,点击下载并安装最新版本的Keil 软件。
在安装过程中需要注意以下几点:1.确认安装路径是否正确;2.安装时需要选择对应的开发板型号,这样可以保证后续的工程创建和调试能够正常进行;3.安装完成后,需要将对应的 STM32 库文件导入进来,这样才能在程序中调用。
创建工程安装成功后打开 Keil 软件,新建工程,选择对应 STM32 的型号和使用的编译器。
创建好工程之后,Keil 会自动生成一些默认的文件和代码,包括:startup_stm32fxxx.s、stm32fxxx.h、system_stm32fxxx.c 以及一个主函数模板。
其中,startup_stm32fxxx.s 是汇编程序文件,用于初始化芯片的栈、堆、堆栈指针等;stm32fxxx.h 是 STM32 的寄存器头文件,定义了 STM32 系列芯片中所包含的寄存器和位定义;system_stm32fxxx.c 在裸机程序中会被用于初始化芯片的时钟等设置。
主函数模板中也提供了一些标准的例程代码和编程示范。
除此之外,我们还需要在项目文件中添加外设库和相应的驱动库,以便于我们后续的开发和调试操作。
编写程序在 Keil 的工程中,我们可以利用 C 语言进行程序的编写,并通过 Keil 提供的相应的编译器进行编译操作。
在编写程序时,需要注意以下几点:1.寄存器的地址定义方式和位操作方式;2.芯片的中断向量表,在启动文件中需要正确地进行定义;3.可以使用 Keil 的固件库,在工程中添加对应的库文件即可;4.若要进行时序或者中断服务程序测试,可以使用 Keil 提供的仿真工具进行模拟;除此之外,编写程序还需要注意以下几个常用的函数库:1.CMSIS 核心函数库:主要是一些对寄存器的直接操作和位操作等的接口函数;2.Hal 库:主要是对各种外设控制的库函数,例如 IIC、SPI、UART 等的通用控制函数库;3.Standard Peripherals Library:主要是对芯片内的各种外设进行控制的函数库,例如 ADC、DAC、定时器等。
如何用keil5新建STM32-新工程
第一步?新建文件夹
第二步在文件夹下新建user文件夹,在user下再建2文件夹分别为inc和src
第三步复制library 到文件夹中
第四步打开电脑中的keil 软件并关闭所有为工程,然后新建工程到目标文件夹中然后选择芯片(以STM32 f103@@@为例)
然后选择想要的型号芯片会有以下界面
在空白处什么都不选直接OK
第五步点击工具图标
第六步
新建cmsis (系统和启动文件) user(客户文件) driver(模块文件)
在cmsis中添加内核文件,系统文件等(在library中)注意芯片的容量hd高容量md 中容量ld 低容量
第七步设置路径
点击上图后有
在Define 中写入系统启动文件的名字(大写)
在路径中写头文件地址
1.内核文件地址
2.运行支持文件
结束应该有如下文件夹确定即可
第八步'点击新建
后保存
.c 文件放在src 里面 .h 文件放在inc中
注意: 在.h文件中开头和结尾一定要有如下格式(LED是c文件名字但是.h文件这里名字必须大写)
第九步骤
双击user 加入.c文件到程序中
第十步在烧录程序的时候用STlink的话记得选择如下界面(如果用sw下载方式在Debug的settings中设置成SW格式就可以)。
使用Keil进行stm32的程序开发本章的上一节向读者介绍了Keil MDK的安装流程与在Keil MDK的μVision4集成开发环境下进行stm32工程的建立方法。
本节我们就来看看如何使用Keil MDK开发工具进行stm32应用程序的开发。
在此之前有必要向大家介绍几个名词,Keil、MDK、μVision4、RealView、RVCT、JLINK还有RVDS,这些名词分别表示什么,有什么从属关系呢?相信很多读者并没有明确的概念,现在简单的说明一下:Keil:这个大家应该最为熟悉,Keil其实是一家公司的名字,而这家Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software组成。
大家很熟悉的keil C51就是从Keil Software手中诞生的。
但是在2005年,Keil公司被ARM公司收购。
值得一提的是,Keil公司只有区区20多名员工,却仍然做出了伟大的作品。
MDK:MDK全称Microcontroller Develop Kit,意为微控制器开发套件。
ARM收购Keil公司的意图在于进军微控制器(也就是我们常说的单片机)领域,MDK就是这种意图下的产物。
但我们一般仍称之为Keil MDK而不是ARM MDK,Keil MDK作为一个套件,包含了一系列软件模块。
包括Keil公司的IDE 环境”μVision”,ARM公司的编译器RVCT,Flash烧写软件模块等。
μVision4:μVision4是Keil公司的IDE环境”μVision”的第四个版本,从根本上来说μVision4是一个开发环境,并不必须包含编译器、仿真、烧写等模块。
比如AVR单片机的一个开发环境WinAVR(又称GCCAVR)就不包含仿真调试器,也不包含烧写模块。
值得一提的是,家喻户晓的Keil C51正是基于μVision2开发环境,所以μVision4的界面和μVision2非常的相似,很有利于广大习惯于μVision2开发环境的开发人员转向使用μVision4进行stm32的开发。
keil5+stm32f427标准工程Keil5是一款嵌入式开发环境,用于编写、调试和烧录嵌入式系统的软件。
它支持多种嵌入式开发板和微控制器,其中包括STM32F427。
以下是创建STM32F427标准工程的步骤:1. 打开Keil5,并点击"File"->"New Project"。
2. 在弹出的窗口中,选择你的开发板型号(可能是一个NUCLEO-F427ZI或自定义板子),然后点击"OK"。
3. 在下一个窗口中,选择你想保存工程的文件夹和工程名,并点击"Save"。
4. 在"Select Device for 'xxx'"窗口中,选择STM32F427系列的芯片型号(如STM32F427xx)并点击"OK"。
5. 在弹出的窗口中,选择"MDK-ARM Professional"或"MDK-ARM Plus"版本,并点击"OK"。
6. 接下来,在"Project"栏下,展开"Targets",然后右键点击你的芯片型号,选择"Options for Target 'xxx'"。
7. 在"Target"选项卡中,选择正确的芯片型号,并选择连接器和烧录器。
如果你使用自定义板子,请选择正确的I/O引脚。
8. 在"Utilities"选项卡中,选择适当的Debug模式和Trace接口。
9. 在"Debug"选项卡中,选择你喜欢的设置,如代理设置、Bootloader配置等。
10. 最后,点击"OK"保存设置,并点击"Project"->"Build Target"构建工程。
此篇根据个人的mdk4.5+JlinkV8使用状况,来写的日记,我只捡一些个人碰到的一些大众化的问题来说,其他的我就贴图了(也会简单说一下),高手可以掠过。
呵呵1新建工程,和增加源代码a.创建工程:点上述的按钮后,自己输入自己的工程名称,选择路径,然后保存.b.增加一个Groupc.增加源文件:1.自己编写的源文件:File New ,Ctrl+s ,输入源文件名, 选择路径,然后保存2.复制已有的源文件到一个文件夹下,然后如下图所示, 把所有源文件增加进来.(个人比较懒,实验工程,所以就一个group把所有的源码全加进来了。
)增加所有源文件后的界面2 keil4设置,我把我的设置全部贴图,我自己碰到的问题,会提出来说下。
a.点击target option按钮,进入设置界面图1. device(我的是STM32F103ZET6芯片)图2 Target上述的注意的几个地方:Xtal :( 我用的是8M晶振)System_V iew File:根据我之前的情况来看,只要其他的选好了,keil是可以自行增加的,这里关注下,我的是手动添加的(这里用的是绝对路径,至少我尝试是无法设置成相对路径的)。
这个文件大家可以在..\Keil\ARM\SFD\文件夹下找到相应的文件ROM和RAM的设置:各自根据自己的实际情况来设置3.Output选项卡需要选中debug information,Browse information (碰到在C中无法增加断点的情况,个人误打误撞选中这两个后就可以了,后来实验过取消和增加确实和能不能增加断点有关系,还是建议勾选上)4.Listing选项卡和User选项卡,ASM选项卡我没有做任何更改,就略过.(如果用汇编的话,应该要设置的吧)5.C/C++选项卡我只修改了Inlcude Path 选项卡(包含的头文件路径)a.使用绝对路径。
点击右侧小按钮,然后挨个挨个找吧(不方便移植)。
KEIL下使用Jlink调试STM32 核心模块开发板大家知道,之前在Keil下可以通过RDI方式使用全功能版Jlink来调试LPC2000、STR912等很多芯片的,不过唯独是无法用Jlink 的RDI方式来调试STM32系列,因为在Jlink RDI Configuration 中的Flash设置中没有STM32芯片的选项,如下图所示。
在Keil宣布支持Jlink后的MDK3.22版本中开始直接支持Jlink了,这对大家来说无疑是一个好消息,因为在Keil中可以直接像使用Ulink2一样使用Jlink了。
不过经过测试好像还存在一些bug,测试情况详见:/bbs/viewthread.php?tid=8933&extra=page%3D3最主要的问题就是:添加下载算法不能一一对应,完全是乱的,如下图所示:后来经过awake兄弟的指导和帮助终于搞定了,在这里对awake兄弟表示感谢。
这个问题在Keil的官方网站给出了答案,详见:/support/docs/3410.htm 下面就给出具体解决方法,很简单,只需两步,复制三个文件即可:1、安装Jlink的最新驱动,本文安装的是V3.88版本,最新的驱动可以从segger官方网站下载:/download_jlink.html。
安装完成后,打开C:\Program Files\SEGGER\JLinkARM_V388目录(默认安装目录),如下图所示,复制JLinkARM.dll和JLinkRDI.dll两个文件到Keil的安装目录:\Keil\ARM\Segger下,替换以前的文件,如下所示:2、从keil网站下载JLTAgdi.dll文件也复制到:\Keil\ARM\Segger目录下,添加完成后如下图所示:完成上面两步后,现在我们打开Keil软件来进行一个验证。
任意打开一个STM32的程序,本文打开时Keil自带的USBMem例程,在:\Keil\ARM\Boards\Keil\MCBSTM32\USBMem目录下。
今天外我来教大家来怎么使用这个建工程的利器吧。
首先是新建工程吧,如下图步骤:因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图:红色框里的都是一些集成在keil 5的启动文件,arm内核的文件,st公司的库函数和一些API等等。
一个工程最起码也要选上core和startup两个选项,如下图:然后选择OK,就建好了空白的工程。
然后就要对工程做一些设置,如下图:然后在你工程的路径新建一个USE(这个大家可以随便建个文件,不一定是USE 名字的)的文件夹,然后在里面新建一个main.c的文件,如下图:然后新建的文件main.c添加到工程当中,步骤如下:然后在main.c文件中添加如下代码:到这里我们的空白工程建好了,后面我来教大家怎样加keil 5里自带的st库。
首先我点击那个绿色的小图标,如下图:点击后会弹出一个大的页面,然后找到Device->StdPeriph Drivers。
如下图:点开StdPeriph Drivers选项的加号图标,就可以看到st库目录下各外设的驱动文件,后面是他的版本说明,这是V1.3版本的,是比较新的,建议大家尽量使用新的库。
我这里就勾上了所有外设的驱动的文件,如下图:然后点击OK后,就可以看到原先工程目录下的Device添加了刚才选择外设的驱动文件。
添加完后大家不要急着编译工程,还有对工程进行相关的配置,否则如下图,编译不成功的:接下来,我来配置下工程,右击target,然后进入配置工程的面板,步骤如下:这里要填上USE_STDPERIPH_DRIVER,这就是表明编译器选择了st的库然后我们来指定编译器头文件的路径以上这两个路径是编译器编译时要找的路径,这几个头文件至关重要,这里编译器关联头文件所需要的。
当做完以上工作后,我们就可以来编译一下工程,在编译时,编译器就会根据我们的配置来编译驱动头文件和驱动的C文件。
使⽤STM32库建⽴keil-4⼯程详细步骤教学总结STM32 使⽤外设库建⽴keil⼯程新建⽂件夹取名为⾃⼰想要的名称(如GPIO)1、打开⽂件,建⽴如下的⽂件结构:2、打开Project,建⽴如下⽂件:3、打开下载来的外设驱动库如下:4、把Libraries的下的两个⽂件(CMSIS和STM32F10x_StdPeriph_Driver)拷贝到GPIO⽂件下:5、打开下载的驱动库下的Project⽂件,打开STM32F10x_StdPeriph_Examples,找到我们需要的例程,如GPIO6、打开GPIO⽂件夹7、打开IOToggle,复制除了readerme.txt之外的⽂件到⼯程下的User⽂件。
复制好之后:8、到此,准备⼯作完毕。
9、打开KEIL,新建⼯程10、保存在Project⽂件夹下⾯,取名为⾃⼰的名字,我取名为GPIO。
11、选定⾃⼰使⽤的芯⽚,点击ok。
12、此时会跳出这个对框框,选择否:13、⼯程建好后是这样的。
14、在⼯程上右键选择Mange Componts 如下:15、建⽴如下组16、在User下⾯添加刚才⽅法哦User下的C⽂件:点击Add17、增加StdPeriph_Driver的⽂件,在⾃⼰⼯程StdPeriph_Driver下⾯的下⾯的src⽂件如下:(说明:只需要增加⾃⼰需要的,我这⾥全部添加了)18、在CMSIS下增加⽂件:CMSIS⽂件下的CM3的CoreSupport的⽂件19、在StartUp下⾯增加位于下的⽂件21、增加完⽂件后⼯程如下现在左键点击选中GPIO⼯程名,在点击右键选择Options for Target ‘GPIO’来配置⼯程Select Folder Objects…,选择我们在Project⽬录下的Obj⽂件23、勾选长⽣hex⽂件。
24、在Listing页⾯下点击Select Folder Objects for listings…,选择我们在project⽬录下的List⽂件在C/C++页⾯下配置,这是预编译的定义;Define 中写⼊USE_STDPERIPH_DRIVER, STM32F10X_HD其中第⼀个“USE_STDPERIPH_DRIVER”定义了使⽤外设库,定义此项会包含*_conf.h ⽂件,从⽽使⽤外设库;⽽第⼆个“STM32F10X_HD”从字⾯理解应该是定义了⼤等容量的STM32MCU,STM32F10X_MD则为中等容量等。
使用keil进行stm32单片机开发的流程-回复keil作为一款嵌入式系统开发工具,广泛应用于STM32单片机的开发过程中。
它具有强大的编译、调试和仿真功能,可以帮助开发者更高效地进行单片机的开发工作。
本文将以“使用keil进行STM32单片机开发的流程”为主题,为读者详细介绍使用keil进行STM32开发的步骤和注意事项,帮助读者轻松入门STM32开发。
一、准备工作
1. 软件安装:首先需要安装keil嵌入式开发环境。
你可以从官方网站上下载到keil的安装包,然后按照安装向导进行安装即可。
2. 硬件准备:除了软件准备外,还需要购买一块支持STM32开发的开发板,例如ST公司的ST-LINK开发板。
将开发板连接至电脑。
二、创建项目
1. 打开keil:双击桌面上的keil图标,进入keil开发环境。
2. 创建新项目:点击“Project”->“New Project”,选择合适的存储路径和项目名称,并选择你所使用的STM32单片机型号。
单击“OK”完成新项目的创建。
三、配置开发环境
1. 配置芯片参数:在左侧的“Project”窗口中,右键点击“Target 1”,选择“Options for Target”。
2. 配置目标选项:在“Debug”选项卡中,选择正确的调试接口,并将“Use Simulator”选项取消勾选。
在“Settings”选项卡中填写正确的时钟频率和连接方式,并启用Flash编程。
3. 配置编译器:在左侧的“Project”窗口中,右键点击“Target 1”,选择“Options for Target”。
在“C/C++”选项卡中,配置编译器的优化级别和其他相关参数。
四、编写代码
1. 添加源文件:在“Project”窗口中右键点击“Source Group 1”,选择“Add New Item”,然后添加你的源代码文件,编写代码内容。
注意,为了方便管理,可以按功能将代码分割成多个源代码文件。
2. 引入库文件:在“Project”窗口中右键点击“Source Group 1”,选择“Add Existing Item”,然后添加所需要的库文件。
这些库文件通常用于提供诸如GPIO、USART等外设驱动函数。
五、编译程序
1. 编译代码:点击菜单栏的“Project”->“Build Target”,或者使用快捷键“Ctrl+F7”编译你的代码。
编译过程会生成可执行文件,检查编译输出窗口是否显示成功编译完成的信息。
六、烧录程序
1. 配置调试器:点击菜单栏的“Flash”->“Configure Flash Tools”,
选择你所使用的ST-LINK工具,并设置好正确的连接方式和目标地址。
2. 烧录程序:点击菜单栏的“Flash”->“Download”,或者使用快捷键“Ctrl+F5”将可执行文件烧录到STM32单片机上。
七、调试程序
1. 开始调试:点击菜单栏的“Debug”->“Start/Stop Debug Session”,或者使用快捷键“F5”进入调试模式。
此时,keil将自动加载并运行你的程序。
2. 断点调试:在代码中设置断点,点击菜单栏的“Debug”->“Toggle Breakpoint”,或者使用快捷键“F9”,以便在程序运行中暂停和检查程序状态。
总结:
通过以上的步骤,我们可以看到使用keil进行STM32单片机开发的流程并不复杂。
从项目的创建到代码的编写,再到程序的编译、烧录和调试,keil提供了一站式的解决方案,为开发者提供了便利。
当然,在实际开发过程中还有许多细节和技巧需要注意,如外设引脚的配置、时钟初始化、中断处理等。
渐渐地,你会发现keil的强大之处并能够熟练地使用它进行STM32单片机开发。
希望本文对你有所帮助,祝你在STM32开发的路上越走越远!。