STM32工程模版的建立
一步步建立 STM32 UCOS 模板

uCOS学习随笔 StepbyStep‐1——构建模板(基于STM32控制的第四代圆梦小车)一、序基于第四代圆梦小车 —— FIRA 设计了一个使用STM32的控制板(详细介绍见项目中的说明: Introduction B ‐ Hardware of the Smart Car.pdf )。
既然硬件从51升级到ARM,软件也应该相应升级,似乎不能再编写那种简单的轮询调度程序,也应该相应升级到基于操作系统编程。
按STM32的规模和性能,以及小车的控制需求,实时多任务操作系统 uCOSII 应该是不二的选择,不论从其性能和功能考虑,还是从学习角度考虑,uCOSII 都很适合。
首先,它是开源的,有丰富的资源。
其次,它是可靠的,符合正式的工业控制、产品设计需求。
小车所面对的是那些学习相关专业的大学生,作为他们学习的辅助工具,趣味性只是为了降低学习的枯燥性,不是目的。
他们借助这个平台是为了积攒应付未来工作的能力,所以,学习内容的实用性是必须考虑的。
本人从未基于操作系统编写嵌入式程序。
开始使用 MCU的时候,MCU的内存太小,256字节 RAM ,2K字节 ROM,能勉强把程序装入就不错了,连 C语言都不敢选择。
而且,那时好像也没有 RTOS(Real Time Operation System),或者是由于信息交流渠道匮乏,不知道有 RTOS。
既然我提供了这个平台,也借此机会尝试一下,和大家一起学习使用 uCOSII。
(从单片机应用升级为嵌入式应用 ^_^)二、Step1想要得到什么?(需求分析)第一步我想得到的是:1)如何建立一个基于 uCOSII 的编程环境(目录、文件组织);2)如何基于IDE(IAR或RvMDK)建立一个工程,能够产生可以运行的程序;3)得到一个“干净的”、可以作为模板的uCOSII程序组(Project);4)通过上述过程初步理解在 uCOSII 下如何编写应用程序。
之所以要把“如何建立……”作为需求,而不是找一个现成的模板或示例程序修改、添加自己的功能,是因为看了许多这种程序,感觉“极不可靠”!因为程序中有太多的东西不知道为何而存在?不知道为何而被注释掉?似乎这些东西都像“定时炸弹”,早晚会给你的程序带来麻烦。
stm32工程模板建立

STM32工程建立步骤Stm32的工程建立稍微有点复杂,所以写一个教程也是为了防止自己以后忘记了步骤而再次繁琐办事。
首先新建一个工程文件夹改名字打开Domo新建文件夹打开Libraries文件夹新建如下文件夹其实你会发现这都是官方库里面的文件夹,事实上就是拷贝过来的啦。
这是官方3.5版本库首先我们凑齐Libraries 文件夹里的四个子文件夹从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\Core Support\找到下面两个放到core文件夹内从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ ST\ STM32F10x把startup文件夹直接复制过来放在Libraries里,另外三个文件放在刚刚建的Devices文件夹里然后把startup打开再把arm文件夹里的文件都剪切出来放在startup文件夹里,其余文件删除。
从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\ STM32F10x_StdPeriph_Driver拷贝inc、src这两个文件夹到这里我们新建的Libraries文件夹里的四个子文件夹就凑齐了,可见都是官方的库。
然后我们往Devices文件夹里添加一些文件从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\ Project\ STM32F10x_StdPeriph_Template复制这五个文件放到Devices文件夹里你会发现这个文件重复了,是因为我们刚才已经放了三个文件其中一个就是它,一模一样随便处理了。
这个时候我们就可以打开Keil了新建工程菜单栏点击Project→New μVision Project会弹出窗口让我们选择位置和工程名我们定位到Project文件夹命名工程为Domo如图点击保存会弹出选择芯片的窗口这里我选择STM32F103RB点击OK弹出一个资料窗口直接点OK,干净的脸庞开始设置项点击选择Output再点击Select Folder…选择Output文件夹,如果需要生成HEX文件,就把Create HEX File勾选。
STM32工程建立与配置流程

STM32工程建立与配置流程此次的STM32的学习,在程序的建立与配置上比以往的要更加复杂,所以我个人也是在新建工程以及配置工程中经常落下一些设置与操作,使整个程序无法仿真,或是程序编译出错,为了避免这样的一些基础的错误与麻烦,我个人整理了整个工程的建立到工程的全部设置,谈不上非常细致吧但也足够让一些像我一样的初学者避免一些错误,已经掌握的同学若在日后有忘记的地方也可非常方便的来查看一下。
下面就是创建与配置工程的全部过程,初学者请务必按顺序一步步查看。
1.新建一个文件夹(以后编的每一个工程都放进这个文件夹里,自己命名,例如:STM32 file)2.创建一个文件夹(名字可以根据你编写的程序来命名,如:Demo)2.1 新建子文件夹User,用于存放用户源程序2.2 新建子文件夹Project,用户KEIL工程文件2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
2.4 将main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h system_stm32f10x.c等文件复制到User文件下3. 复制源代码到Demo文件夹3.1 将stm32f10x_stdperiph_lib3.5 / Libraries文件夹整体复制到Demo文件夹下这就是ST的标准库,是以源代码形式提供的。
也可将Libraries文件夹直接复制到STM32 file文件夹下,使其与以后创建的其他工程同在一个目录下,这样可使在该目录在的工程共享Libraries。
免得以后创建一个工程就得复制一次Libraries4.新建一个Keil MDK工程4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作4.2 选择CPU类型为 STM32F103RC4.3 当提示是否复制启动代码时,请选择否。
4.4 为了延长芯片使用寿命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真在断电之后数据就全部丢失了,修改Target名字, 添加两个,一个Flash,一个Ram 如图4.5 为了便于代码管理,在这个Project下创建几个GroupUser : 存放用户自己写的源代码RVMDK : 存放启动文件(汇编文件)StdPeriph_Driver : 存放ST标准库文件CMSIS : 存放CMSIS接口文件(这也是库的一部分)4.6 创建好Group后,我们开始依次添加文件。
如何为STM32F030建立工程模板6

如何为STM32F030建立工程模板最近在学习STM32F030的相关知识,在建立工程模板过程中总结了一些经验;这些经验大多是通过网络找到的;实际上是炒了正点原子的剩饭,望其莫怪;现在共享给大家,希望对大家能有帮助;首先、在建立工程之前,建议各位童鞋在电脑的某个目录下面建立一个文件夹,后面所建立的工程文件都放在这个文件夹下面,这里我们建立一个文件夹为LED。
注意,关于文件夹的命名,建议大家都用英文,也就是说让这个工程创建在一个全英文的路径下,这样可以避免在链接的过程出现错误;1、回到MDK主界面,可以看到工程中有一个默认的工程,点击这个工程名字,然后选择菜单Project->Close Project,就关闭掉这个工程了!这样整个MDK就是一个空的了,接下来我们将建立我们的工程模版。
2、点击Keil的菜单:Project–>New Uvision Project,然后将目录定位到刚才建立的文件夹LED之下,在这个目录下面建立子文件夹USER(我们的代码工程文件都是放在USER目录,很多人喜欢新建“Project”目录放在下面,这也是可以的,这个就看个人喜好了),然后定位到USER目录下面,我们的工程文件就都保存到USER文件夹下面。
工程命名为LED,点击保存。
接下来,我们在LED工程目录下面,新建3个文件夹CORE,OBJ以及STM32F0_FWLib。
CORE用来存放核心文件和启动文件,OBJ是用来存放编译过程文件以及hex文件,STM32F10x_FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件。
USER目录除了用来放工程文件外,还用来存放主函数文件main.c,以及其他包括system_stm32f10x.c、等等3、接下来会出现一个选择芯片型号的“Device”界面,就是选择我们的所用芯片的型号,这里我们定位到STMicroelectronics下面的STM32F030R8;然后点击“OK”即可;(如果是其他芯片,请选择对应的型号即可)。
stm32建立工程

1 点击UVision4 →project→new uvision project,保存在桌面的stm32文件/user文件下(先在桌面建立stm32文件,在里面再建立user文件),取名字STM32_lession1(随意取名)。
点击保存。
2选择芯片型号:选ST公司的STM32F103VET6,有64K SRAM,512K FLASH,接下来的窗口问我们是否拷贝STM32的启动代码到工程文件中,这份代码在M3系列中都是适用的,一般情况下我们都点是,但这里我们用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里点击否.此时新建工程成功,如下:3 在桌面的STM32文件夹下,新建四个文件夹,分别为:FWLib、CMSIM、Uotput、listing.4 把库3。
5。
0/3。
5。
0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/STM32F10X_StdPeriph_Driver的inc和src这两个文件夹拷贝到FWlib文件夹中。
5把库3.5.0/3.5。
0/STM32F10X_Stdperiph_lib_V3.5.0/Project/STM32F10X_StdPeriph_Template 下的main。
c、stm32f10x_it.h、stm32f10x_it。
c、stm32f10x_conf。
h、system_stm32f10x.c 拷贝到USER文件夹下.6把库3。
5。
0/3。
5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/CMSIS/CM3/DeviceSupport/ST/STM32F10X/ startup/arm下的全部文件拷贝到CMSIS/startup文件夹下。
STM32F103VET6,有512K Flash,属于大容量的,工程中把startup_stm32f10x_hd。
使用MDK5建立STM32工程

使用MDK5建立STM32工程MDK5是Keil公司推出的一款嵌入式开发工具,用于编写和调试STM32系列微控制器的程序。
本文将介绍使用MDK5建立STM32工程的步骤。
首先,我们需要准备以下材料:-STM32系列微控制器开发板-USB转串口调试器-MDK5软件安装包接下来,我们按照以下步骤建立STM32工程:第一步,安装MDK5软件第二步,创建新工程打开MDK5软件,点击"Project" -> "New uVision Project",选择保存工程的路径,并命名工程。
第三步,选择目标器件在"Device"栏中,选择对应的STM32系列微控制器型号。
第四步,配置工程选项在"Project" -> "Options for Target"中,配置工程选项,包括时钟频率、调试接口等。
第五步,添加源文件在"Project"窗口中右键点击"Source Group",然后选择"Add New Item to Group",选择需要添加的源文件。
第六步,编写程序在添加的源文件中编写STM32的程序,可以使用C语言或者汇编语言。
第七步,调试程序在"Project" -> "Options for Target"中,配置调试选项,选择调试模式和调试接口等。
点击工具栏上的"Start/Stop Debug Session"按钮,开始调试程序。
以上就是使用MDK5建立STM32工程的主要步骤。
通过这些步骤,我们可以方便地进行STM32的软件开发和调试工作。
同时,MDK5还提供了丰富的开发工具和调试功能,提高了开发效率。
我们可以根据具体的需求进行配置和扩展,以满足不同的项目要求。
STM32F103RC的工程模板创建

地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司STM32F103RC 的工程模板创建一、STM32F103RC 的工程模板创建1、先在D:\program\KEL_MDT_ARM 目录下创建一个文件夹,命名为“STM32_Template” 在D:\program\KEL_MDT_ARM\STM32_Template 目录下创建5个文件夹,分别命名为 “USER”, “OUTPUT ”,“LISTING”,“FWLIB ”和“CMSIS ”。
见下图:“USER”文件夹用来存放工程文件和用户代码。
“OUTPUT”文件夹用来保存软件编译后的输出文件。
“LISTING”文件夹用来存放编译过程中产生的文件。
“FWLIB ”文件夹用来存放STM32固件库的所有驱动文件。
“CMSIS“文件夹用来存放STM32固件库自带的库文件和M3系列的通用文件。
2、双击“Keil uVision4”图标,弹出下面的图:地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司3、点击“Project ”菜单下的“New uVision Project...”,见下图操作:4、找到D:\program\KEL_MDT_ARM\STM32_Template\USER 的目录,得到下面的对话框:地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司5、在上图的文件名栏目里输入“STM32-DEMO”,见下图:6、点击“保存”按钮,弹出下图对话框:地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司7、我们是用STM32F103RCT6,所以先找到芯片公司“STMicroelectronics ”,见下图:8、点击“STMicroelectronics”左边的“+”号,找到“STM32F103RC”,见下图:地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司9、点击“OK ”按钮,得到下面的对话框:10、点击“否(N )”按钮,得到下面的界面:地址:安徽省、合肥市、肥东县、店埠镇,合肥市福来德电子科技有限公司11、打开D:\program\开拓者3号\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 目录下,见下图:12、将上图中两个文件“inc”“src ”拷贝到D:\program\KEL_MDT_ARM\STM32_Template\FWLIB 目录下。
STM32F4(KEIL5函数版)工程模板建立方法

1.下载对应型号的STM32固件库2.建立好对应的文件夹2.1 建立文件夹工程说明主要存放stm32f429的官方固件库存放编译产生的调试信息,hex文件,预览信息,封装库扥文件主要存放内核文件和启动文件存放main函数,中断函数,配置函数,429系统函数2.2 在文件夹里放对应的固件库文件1.。
将inc,src文件夹放入。
2.找到startup_stm32f429_439xx.s?放入找到core_cm4,core_cm4_simd,core_cmFunc,core_cmInstr放入3.将里面所有的文本文件放入user文件夹。
将stm32f4xx.h和system_stm32f4xx.h放入user文件夹。
3.打开Keil建立工程模板一找到对应的STM32芯片型号二在该对话框中建立STARTUP,User,Libraries文件夹,给这三个文件夹中添加c文件,STARTUP文件夹中只添加.s启动文件三勾选Use MicroLib 为了日后编写串口驱动的时候可以使用printf函数勾选Create HEX File,在编译过程当中产生hex文件选择Select Folder for Objects 为文件夹Output选择默认的文件夹不用调整Define添加宏STM32F429_439xx,USE_STDPERIPH_DRIVER,进入Include Paths按如下添加头文件路径要进行仿真的话,选择好对应的USE仿真器型号五STM32F429比较特殊,它的用FMC代替了FSMC,所以要将stm32f4xx—_fsmc.c文件不加入编译剔除Include in Target Bulid的勾4.然后就可以在User用main.c文件进行正常的编译了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过STM32固件库V3.5.0来建立一个简单的工程模版
首先,打开Keil,选择Project->New uV ision Project,选择合适的文件夹,输入工程名后,点击保存,建立工程。
如下图,在Template文件夹下建立工程名为stm32_demo的工程。
然后我们选择器件,以STM32F103RB为例(STM32其他系列可类推),在STMicroelectronics 栏中选择STM32F103RB,如下图,在图右侧我们可看到关于芯片的描述。
点击确定后弹出如下的对话框,问需不需要添加启动文件(此启动文件为MDK自带的),
在这里,选择否(N),等会我们会添加STM32固件库中的启动文件。
接下来,我们要建立几个文件组,用来存放不同的源文件,让整个工程目录结构清晰,点击
中的后如下图所示
点击中的可建立一个文件组,可以删除分组,下面我们将建立User,StdPeriph_Drive,CMSIS,MDK-ARM四个文件组,User用来存放与用户有关的文件,StdPeriph_Drive用来存放库函数中的外设驱动文件,CMSIS用来放于Cortex_M3内核有关的文件,MDK-ARM用来存放启动文件,文件组建立好后,如下图所示。
点击OK,我们可看到文件组如下所示
接下来,我们将对固件库文件夹(如下图所示)与Template文件夹中的文件进行操作。
将固件库文件夹中的Libraries文件夹复制到工程目录下(即刚才建立的Template文件夹下),并在Template下建立User与Output两个文件夹,User用来放与用户代码有关的文件,Output 用来存放编译后产生的中间文件。
打开Template文件夹后如下图所示。
然后,将
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_Stdperiph_Examples\GPIO\IOToggle
目录下main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c四个文件复制到User目录下。
至此,文件的操作结束。
重新点击,现在我们要向各个文件组中添加文件。
首先是User文件组,点击Add Files,然后添加User文件夹下的3个C文件,如下图所示。
然后是StdPeriph_Drive文件组,向其添加Libiraries\STM32F10x_StdPeriph_Driver\src下的所有源文件,如下图所示
然后是CMSIS文件组,向其添加Libiraries\CMSIS\CM3\CoreSupport下的core_cm3.c和Libiraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的system_stm32f10x.c文件,如下图所示
然后是MDK-ARM文件组,向其添加启动文件,启动文件在
Libiraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下,因为我们选择的芯片型号为STM32F103RB,故向其添加startup_stm32f10x_md.s,如下图所示,其他类型芯片可根据芯片容量来选择相应的启动文件
完成后,点击OK,至此,文件组的文件添加完毕。
接下来,我们将进行编译选项的设置
选择中的,在Target
栏中勾选,Output栏中点击,选择
Template文件下下的Output文件夹,并且勾选,Listing栏中点击
,选择Output文件夹,最后要在C/C++选项栏中设置好宏定义与文件包含路径。
宏定义设置如下,其中STM32F103RB对应的宏定义STM32F10X_MD,可以根据其他芯片型号改变宏定义。
文件包含路径设置如下,
点击
中的来添加文件路径,在此要添加4个文件路径,如下图所示
接下来是最后一步了,将main.c文件中的第24行#include "stm32_eval.h"注释掉即可。
点击编译后,编译即可通过。
编译的结果如下:
主函数是一个关于IO翻转的例子,我们可以通过软件仿真来看波形。
点击
中的,然后选择
中的(波形仿真),点击后如下图所示
点击后如下图所示
点击新建要观察的信号,在此处应输入PORTD.0与PORTD.2两个信号,设置好后点击
Close,点击,仿真开始,我们可以观察到的波形如下图所示
至此,库函数的移植结束。
关于库函数的使用,大家可以参考官方关于固件库的手册。