Keil使用介绍

本文详细介绍了如何使用Keil软件从创建工程文件、编写C代码,到配置编译和烧录程序的过程,包括单片机型号确认、硬件连接和串口检查等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、创建工程文件

二、创建.c文件

1、创建.c文件

2、添加.c文件

三、编写程序

1、编写程序

2、配置编译文件

四、程序烧录

1、查看串口

2、查看单片机的型号

3、单片机硬件配置


前言

第一部分使用Keil软件从头编写一个程序,并烧录至单片机运行,步骤如下

第一步:建立工程文件

第二部:新建一个.c文件

第三步:将创建的.c文件添加至工程文件

第四步:编写程序

第五步:程序烧写

工程创建步骤在此处文章进行详细介绍,后续文章对此部分则不再进行如此详细介绍

一、创建工程文件

(1)第一步打开软件

(2)创建项目,点击项目,选择新uVision项目

(3)命名保存

(4)选择对应的型号,点击OK

(5)选择否

二、创建.c文件

1、创建.c文件

(1)点击文件选择新建

路径尽量使用英文路径,使用中文路径程序编译报错时会比较麻烦

(2)点击保存

(3)给.c文件命名(文件后缀需自己输入)

2、添加.c文件

将创建的.c文件添加至工程文件中

(1)双击Source Group 1

(2)选择创建的.c文件点击Add,可以看到Source Group 1底下出现了led.c文件,点击关闭

三、编写程序

1、编写程序
#include <reg52.h> //引用51头文件

sbit LED1 = P1^0;

void main()
{	
	LED1 = 0;
	
}	

2、配置编译文件

(1)点击目标配置选项

(2)在Output中勾选Creat HEX file,点击OK

(3)构建工程,点击双箭头

(4)编译完成输出编译结果(如果要烧录到单片机输出的结果中需要有creating hex file from)

四、程序烧录

1、查看串口

(1)鼠标右键我的电脑,选择管理

(2)在系统工具-设备管理器-端口(COM和LPT)中查看COM口

2、查看单片机的型号

如下图所示单片机型号为STC89C52RC

3.配置烧录软件

(1)在扫描串口中选择查看显示的串口号

(2)在芯片型号中选择对应的单片机型号

(3)其他参数配置,硬件选项默认不动即可,勾选左侧下方每次下载前都重新装载目标文件和当目标发生变化时自动装载并发送下载命令。

3、单片机硬件配置

注意单片机方向,不要插反,可以看凹槽的一头判断方向,使用USB数据线连接供电,将下图中标注的红色按钮拨至ON,可看到电源指示灯亮起

4、程序烧写

(1)点击打开程序文件,选择刚刚编译生成的hex文件(在object目录下)

(2)选中hex文件打开

(3)点击下载/编程

(4)显示下载成功,可以看到单片机中的LED灯第一颗点亮

(5)烧录结果如下

(6)将程序中第七列LED1值改为1,点击重新编译(软件自动下载程序),可看到点亮的LED灯熄灭

有什么不对的地方谢谢指正,感谢

### 使用Keil烧录AT32芯片的方法 #### 准备工作 为了确保顺利使用Keil进行AT32芯片的烧录,需先完成如下准备工作: - 安装适用于雅特力芯片的支持包。这可以通过安装特定于目标系列的Keil PACK来实现[^3]。 - 确认使用的编程器(如OB-JLINK、AT-LINK)已正确连接至计算机并被软件识别。 - 验证J-LINK驱动程序以及相关工具链版本是最新的,并且其安装路径与PACK保持一致[^4]。 #### 设置项目环境 在Keil μVision IDE中创建新工程时应选择正确的设备型号,即对应的具体AT32微控制器变体。如果之前未见过该器件,则可能是因为缺少必要的定义文件;此时应当按照前述指导添加相应的支持库。 #### 编译链接过程 编写或导入待测试的应用程序源码之后编译整个工程项目直至无误告警为止。此阶段产生的`.hex`或其他格式的目标映像将是后续写入闪存区的数据副本。 #### 进行在线调试/烧写操作 通过菜单栏中的“Debug”选项启动仿真会话,在弹出对话框里指定采用SWD作为通信协议并通过ArteryICP Programmer这类专用应用程序加载固件镜像到目标板上[^2]。 ```python # 示例Python脚本用于模拟调用外部烧录工具的过程 (仅作示意用途) import subprocess def flash_firmware(fw_path, target_id): command = ["path/to/ArteryICPProgrammer", "-f", fw_path, "-t", str(target_id)] result = subprocess.run(command, capture_output=True) if result.returncode != 0: raise Exception("Failed to program device.") flash_firmware("/path/to/firmware.hex", "your_target_ID_here") ``` 值得注意的是,当遇到首次成功而后续尝试失败的情况时,可能是由于保护位设置不当所致——某些情况下默认启用了读取锁定功能从而阻止了进一步访问内部存储空间。因此建议查阅具体MCU手册了解如何清除此类限制措施以便恢复正常运作模式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值