stm32怎么用keil编译
㈠ 怎么把stm32103芯片keil
怎么把stm32103芯片keil, keil安装
通过以上链接下载mdk和注册器,点击安装mdk,根据提示自行更改软件路径和支持包路径,填写完注册信息后NEXT,等待安装。安装完成,点击Finish。
注册
1.点击运行注册器程序。
2.在桌面找到keil软件图标,点击右键,以管理员身份运行。
3.点击File–>Lincense Management–>Single-User Lincense,找到CID,复制CID中的内容填写到注册器的CID空白处,将注册器中Target选择为ARM,点击Generate,得到注册码。
4.将生成的注册码复制粘贴到Keil的New Lincense ID Code空白处,点击Add LIC,点击Close。
支持包安装
点击运行下载的支持包,NEXT开始安装,安装完成,点击Finish。
㈡ 如何使keil既能编写51又能编写STM32
Keil软件,按缺省设置,先装MDK,装完后,不要做任何处理(不卸载,不改变目录);之后继续安装KeilC51软件,按缺省安装,安装完成后,你运行KEIL软件,里面就由STM32等ARM供你选择了。
㈢ 基于keil MDK给stm32编程的问题。。。嵌入式系统开发环境的搭建
您好,一、【安装STM32库】 将下载后的stm32f10x_stdperiph_lib.zip解压后得到三个文件夹分别是:"Libraries"、"Project"、"Utilities"将这3个目录复制到"Keil uVision4"的安装目录,和目录中的文件覆盖合并。二、【新建工程】 1、打开"Keil uVision4",在Project菜单中选择新建工程,选择工程要保存的位置,在弹出的“Select Device for target”的对话框中选择使用的STM32单片机的型号如“STM32F103C8”,点确定,然后在弹出的“Copy startup code”的对话框中点选"NO".
2、在Project“Target 1”上点选右键菜单“Option for target target1中设置相关参数”在[Output]选项卡中点选“Create HEX file”,点"Select folder for objects"设置临时生成的obj文件的存放目录,当然也可以不选择;
3、在[C/C++]选项卡的"Preprocessor Sysmbols"的Define框中做如下定义:USE_STDPERIPH_DRIVER,STM32F10X_MD
其中USE_STDPERIPH_DRIVER表明要使用ST提供的库,在"system_stm32f10x.c"文件中包含的"stm32f10x.h"文件中有如下定义:
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h"#endif在[C/C++]选项中添加的USE_STDPERIPH_DRIVER宏就是这个作用,用来包含"stm32f10x_conf.h"这个文件被称为"Library Configuration file"用来配置你需要使用到库的那些文件的,例如需要使用到GPIO就应在在这个文件中加上#include "stm32f10x_gpio.h"这个文件可以在STM32库的给出的例程中找得到(C:\Keil\ARM\Project\STM32F10x_StdPeriph_Examples)另外还需要在例程中复制"stm32f10x_it.c"和"stm32f10x_it.h"这2个文件,这2个文件时用来完成STM32中重中断服务程序的将一下三个文件复制到自己工程的user目录下供以后使用:"stm32f10x_conf.h"、"stm32f10x_it.c"、"stm32f10x_it.h"STM32F10X_MD 表明使用的是STM32F10X系列的CPU而该CPU的Flash代码密度是中等(Medium-density devices)这个和使用的CPU相关的查阅CPU的手册就可以得到。
然后在该选项卡的下方的"Include Paths"中设置include使用的路径等,如下图所示:其中.\user路径是用来保存自己定义的头文件的路径4、[Debug]选项卡选择使用"Cortex-M/R J-Link/J-Trace",然后点"Settings"按钮在新打开的对话框中选择[Flash Download]选项卡点"Add"按钮添加编程使用的Flash,在本例中选用的CPU是STM32F103C8,其Flah为Medium-density使用片上的Flash型号为"STM32F10X Med-density Flash On-chip-Flash 128K",最终点OK保存设置。5、[Utilities]选项卡中的"Use Target Device for Flash Programing"要选择和[Debug]选项卡中一样的调试器"Cortex-M/R J-Link/J-Trace";6、然后再次在左侧的"Target 1"上点选右键,在菜单中选择"Manger Components"然后在"Project components"选项卡的"Group"中新建3个组名称分别为"user"、"libs"、"cmsis"1、 分别用来保存用户自己的C文件、stm32f10x_stdperiph_lib的库、和cortex-m3的启动文件等。
users:
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\ system_stm32f10x.c (stm32f10x_it.c该文件定义各种中断的中断服务函数)
libs:
Keil\ARM\ Libraries\ STM32F10x_StdPeriph_Driver\src\*.*
cmsis:
Keil\ARM\ Libraries\ CMSIS\ CM3\ CoreSupport\core_cm3.c
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
(该文件和CPU的Flash的代码密度相关,本例中的STM32F103C8是Medium-density故选用xxx_md.s)
㈣ 如何使用MDK建立一个STM32工程
1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。
2.创建一个Demo文件夹
2.1 新建子文件夹User,用于存放用户源程序
2.2 新建子文件夹Project,用户KEIL工程文件
2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
3. 复制源代码到Demo文件夹
3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Libraries文件整体复制到Demo文件夹下。这就是ST的标准库,是以源代码形式提供的。
3.2 将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.
4. 新建一个Keil MDK工程
4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作
4.2 选择CPU类型为 STM32F103ZE (这是安富莱STM32开发板采用CPU类型)
4.3 当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4.4 根据自己的需要修改Target名字。(名字任意)
4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)
User : 存放用户自己写的源代码
RVMDK : 存放启动文件(汇编文件)
StdPeriph_Driver : 存放ST标准库文件
CMSIS : 存放CMSIS接口文件(这也是库的一部分)
4.6 创建好Group后,我们开始依次添加文件。
5. 修改源代码。我们将修改main.c 文件,换成我们自己跑马灯程序。
6. 配置工程, 点击“Options”按钮
6.1 切换到Output。
选择Object文件夹。
在Create Hex File 前打钩。
6.2 切换带Listing。
选择Listings文件夹
6.3 切换到C/C++
添加两个预编译宏 STM32F10X_HD, USE_STDPERIPH_DRIVER (这是ST库用到了这两个宏)
修改Includes路径
6.4 切换到Debug
选择硬件调试器(缺省是软件仿真),我们选择Cortex-M3 J-Link调试器
再 Run to main前打钩
6.4 切换到Utilities
选额调试器类型,我们选择Cortex-M3 J-Link
点settings按钮,添加Flash编程算法,我们选择STM32高密度器件,Flash容量512K字节
7. 配置工程完毕。下面开始编译。
8. 编译OK,开始调试。
9. 教程结束。
㈤ kiel tutinstm32文件能编译吗
可以。
STM32是ARM7核,而KEIL是ARM旗下的,KEIL只是一个开发环境,支持什_还需要下载相应的编译器,你原来如果是学51的,肯定有C51编译器,但是你需要去官网下载KEIL MDK就是所说的RVMDK,就是ARM的编译器,包含STM32,然后安装,然后看着教程打开KEIL选择相应的芯片来建立工程就行了,不过需要破解。
一般在STM32工程使用Keil编译之后,keil的build output窗口中会出现如图所示的输出信息,其中会显示code_笮。_O-data、RW-data、ZI-data大小。ARM程序的组成(ARM系统中正在执行的程序,而非保存在ROM中的BIN映像文件,请注意区别):一个ARM程序包含3个部分:RO,RW和ZI,RO是程序中的指令和常量;RW是程序中已经初始化的变量;ZI是程序中未经初始化的变量;以上3点可以理解为:RO就是readonly,RW就是read/write,ZI就是zeroARM映像文件的组成:所谓的ARM映像文件就是烧录到ROM中的BIN文件,也称为Image文件,以下用Image文件来替代。Image文件包含了RO和RW数据,之所以Image文件不包含ZI数据,那是因为ZI数据都是0,没必要包含,运行之前将ZI数据数据所在的区域清零即可,包含进去反而浪费存储空间补充一个问题:Q:为什么Image必须O,RW?A:因为RO中的指令和常量以及RW中初始化过的变量是不能像ZI那样无中生有的。
㈥ 在用编译软件keil进行头文件通常有几种写法
三种。本篇笔记介绍一些鱼鹰常用的 KEIL 编辑方法与技巧,用于加快编辑速度。
当然了,很多人现在更多的是使用 VSCode 或者 SI 等软件进行编辑,但不可否认的是,还有很多道友还是选择 KEIL 作为编辑软件的,毕竟这是初恋,已经习惯了。
所以,本篇笔记作为一个编辑技巧的总结。
当然了,关于 KEIL 软件的使用还有一个系列可以参考:
STM32工程模板建立之 KEIL 开发平台设置(一)
STM32工程模板建立之新建工程(二)
STM32工程模板建立之 Simu 目标(三)
STM32工程模板建立之 FLASH 目标(四)
STM32工程模板建立之 RAM 目标(五)
1、双屏
有的时候需要同时看两个文件的内容,比如C文件和 H文件的内容,这个时候,可以使用 KEIL 双屏的功能。
横屏、竖屏随你选择,下面是竖屏效果:
2、TAB替换为空格键
安装KEIL软件后,默认情况下TAB键占用2个空格,虽然这样说,实际上还是 TAB 键,只是显示有所不同罢了。
为了看出到底是 TAB 还是空格,我们可以开启这个显示功能:
我们可以看下图效果,左边点为空格,右边箭头是TAB键。
那么我们为什么要注意这个,我们知道有些编辑器 TAB 键占用 2 个空格,有的占用 4 或 8 个空格,而这里没有一个标准,所以当你把同一个文件在不同编辑器打开时,显示的格式可能不一样的。
具体表现是,在一个编辑器里面,代码显得很整齐,换了个编辑器之后,代码变乱了。
所以更好的方式是,将 TAB 键替换为空格键,这样,不管在哪个编辑器打开,都是整整齐齐了,也不需要修改 TAB 占用多少个空格的问题了。
所以,我们可以打开这个选项:
这样,你的TAB键在敲下后就自动转化成了空格键,再也不用手动替换或者手动敲空格了。
关于 TAB 键还有一个老司机都会用的技巧,shift +Tab 可以将选中的多行代码进行整体左移,而tab键可以将选中的多行代码进行整体右移。
3、打开头文件
KEIL 为人所诟病的一个很大的缺点就是很难查找一个文件。这里鱼鹰介绍一个快速打开C文件对应 H 文件的方法:
如果该文件有头文件的话,那么很快就可以打开了。
对于包含的头文件,可以这样操作:
5.30 版本出现了一个新特性,就是可以在 C 文件和 H 文件之间来回切换,方法类似。
还有对于常用的头文件,我们可以将其直接添加到工程目录中,这样也能方便打开文件(不建议把所有的头文件都放在工程目录中,不然会显得文件很多)。
如果打开的文件太多,又不想关闭的话,可以通过该方式选择文件:
如果想关闭的话,可以使用如下方式:
当然,这上面可以打开对应的文件夹或者复制文件路径,对于那些库文件的打开来说是非常方便的。
再也不用在安装目录下一个个找文件了。
4、添加说明文件
有的时候,需要对工程进行说明,此时我们可以添加一个 txt 文件用于说明:
5、暂时屏蔽文件
当我们不想让一个源文件参与链接与编译时,我们可以将其从工程中移除,但有的时候我们希望保留在工程目录中方便查看,就像上图的 printf_fifo.c 文件一样,那么我们可以通过以下方式设置:
之后进入以下窗口,去掉勾选即可:
关于它的更多说明,可参考鱼鹰STM32工程模板系列文章。
6、搜索
使用CTR + F 或者 CTR + H快捷键可以很快的进行查找或替换,其实还有一个选择,那就是将全部的搜索结果展示出来:
你也可以以精准的方式进行查找,比如全匹配(Match whole word)、大小写匹配(Matchcase),甚至是正则表达式。
如果还有其它好用的编辑技巧,不如留言讨论。
推荐阅读:许久以后,你会感谢自己写的异常处理代码终极串口接收方式,极致效率为什么说你一定要掌握 KEIL 调试方法?延时功能进化论(合集)指针,很难吗?| 解析指针的过程与意义(一)如何写一个健壮且高效的串口接收程序?KIEL 调试那些事儿之窗口展示——变量(二)打了多年的单片机调试断点到底应该怎么设置?| 颠覆认知
回答于 2022-12-07
抢首赞
儿童电动汽车价格,超值好物热卖,上淘宝,放心购!
多仓发货儿童电动车四轮遥控宝宝车大款儿童电动汽车可坐人双座摇
¥1170 元
儿童电动车带遥控四轮带摇摆小孩汽车动宝宝可坐人四驱可电充童车
¥608.4 元
奔驰儿童电动车四轮带遥控摇摆汽车可做人男女孩宝宝音乐充电童车
¥228 元
新品儿童电动车婴儿四轮遥控汽车可坐人男女小孩摇摆童车宝网红款
¥482.4 元
儿童大人一体车婴儿童电动车大人带小孩宝宝遥控玩汽车轮带摇摆四
¥549.6 元
simba.taobao.com广告
看YY直播,根本停不下来
00:13
YY版本8.17.1
广州津虹网络传媒有限公司
隐私
权限
立即下载
YY广告
大家还在搜
bt手游第一平台
旅游英语口语速成
新型建材整体房屋
连锁加盟商
淘宝上如何开网店
国家认可的丰胸品牌
家装网
借贷平台
更多专家
在用编译软件keil进行头文件通常有几种写法
专家1对1在线解答问题
5分钟内响应 | 万名专业答主
马上提问
最美的花火 咨询一个电子数码问题,并发表了好评
lanqiuwangzi 咨询一个电子数码问题,并发表了好评
garlic 咨询一个电子数码问题,并发表了好评
188****8493 咨询一个电子数码问题,并发表了好评
篮球大图 咨询一个电子数码问题,并发表了好评
动物乐园 咨询一个电子数码问题,并发表了好评
AKA 咨询一个电子数码问题,并发表了好评
— 为你推荐更多精彩内容 —
张飞据水断桥后,曹操麾下的九位名将为何都跑了?
首先要说一下,历史上张飞虽然也曾经据水断桥,喝退曹军追兵,不过并没有提及有曹操手下九位名将在场。只有
不沉的经远
回答于 2022-07-20
2点赞564浏览
培训机构-上淘宝选好物,轻松下单,放心购物!
值得一看的培训机构相关信息推荐
淘宝热卖广告
无花果喜欢什么肥料,如何施肥才更有利于无花果提高产量质量?
视频回答
手机用户97575
回答于 2022-11-08
34点赞0浏览
二审只要上诉就立案吗
视频回答
国樽律师事务所
回答于 2022-04-04
252点赞4浏览
十二星座中做一行精一行,天赋很强的星座都有谁?
每个人都可以逐渐创业或做一些小生意,但并不是每个人都能做好生意和事业。有些人每天都是和尚,有些人努力
狐狸说影视
回答于 2022-11-02
6浏览
恭喜!有一份降温补贴可抽取!
巨摩互动
广告
大四学生为助农,购1吨芹菜捐母校,怎样看待此行为?你给母校捐过东西吗?
大四学生为了助农购买了一吨芹菜捐母校,这样的行为彰显了正能量。大部分有经济能力的人都给母校捐过东西,
懒懒是个萌妹子
回答于 2022-12-07
68浏览
正在加载
全部
㈦ stm32怎么建立工程keil4
你好:
首先你需要下载安装keil mdk的编译器,才能开发ARM的MCU。
然后正确选用编译器之后就和51单片机一样新建工程,只不过多了一步添加启动文件。
希望我的回答能帮助到你。
㈧ 使用keil5编译stm32,头文件core_cmFunc.h中,是预定义__CC_ARM,还是__GNUC__
编译的时候,可能是那个地方定义了__CC_ARM, 预编译指令执行了#if defined ( __CC_ARM )下面的代码,没有执行#elif defined ( __GNUC__ )下面的代码;
#if ...
...
#elif ..
...
是条件预编译,只执行其中的一个分支
㈨ 怎么用keil uvision给stm32编程,我用的是野火开发板。。。把一些该添加的东西已经添到软件中
编译、连接、下载、调试。
