【STC8A8K64D4开发板】——搭建开发环境

news2025/2/27 9:20:30

第1-2讲:搭建开发环境

  1. 需要安装的工具软件

表1:需要的工具软件

序号

软件工具

说明

1

Keil C51 9.52安装文件

Keil C51集成开发环境。

2

ch341ser驱动

USB最新驱动可到沁恒官网下载:www.wch.cn/downloads/CH341SER_EXE.html  

3

stc-isp-15xx-v6.90D软件

可到STC官网下载该软件最新安装包:www.stcmcudata.com 

  1. 搭建开发环境需要安装的工具软件在资料包中的位置:
  1. Keil C51 9.52安装文件:“...\第2部分:开发软件工具\ 1 - KEIL C51安装软件”目录下的“c51v952”。
  2. ch341ser驱动:“...\第2部分:开发软件工具\ 3 - CH340驱动程序” 目录下的“ch341ser”。
  3. stc-isp-15xx-v6.90D软件:位于“...\第2部分:开发软件工具\ 2 - STC-ISP下载软件”目录下的“stc-isp-15xx-v6.90D”。
  1. 注意事项:
  1. Keil的安装路径不宜太深,安装路径不可有中文。(并非安装路径有中文就一定会出问题,只能说安装路径使用全是较简洁的英文会大大降低安装出错的概率,请知悉!)
  2. 用户在安装Keil C51前电脑可能已经安装有了Keil MDK版本的软件,务必注意建议将Keil C51安装在其他盘的目录下。
  3. stc-isp-15xx-v6.90D软件无需安装,直接双击打开即可使用。

  1. 搭建Keil开发环境
  1. Keil C51简介

Keil C51是美国Keil公司(该公司2005年被ARM公司收购)出品的51系列兼容单片机C语言软件开发系统。

与汇编相比,C语言在功能、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51是支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。

扩展知识:Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。

本文档中使用的Keil C51版本是9.52,打开后的主界面如图所示。

图1:Keil C51主界面

  1. 安装Keil C51

开发板配套资料包里面已经下载好了Keil C51安装文件,安装文件的位置在开发板资料包的“...\第2部分:开发软件工具\ 1 - KEIL C51安装软件”目录下。

  1. 解压压缩文件c51v952.zip,双击“c51v952.exe”,弹出 Keil C51 V9.52的安装向导,单击[Next],如下图所示。

 

图2:安装Keil C51

  1. 勾选[I agree to ...],然后点击[Next],如下图所示。

 

图3:勾选Keil C51安装协议

  1. 选择安装路径,如下图所示。

此处,可以根据自己的需要选择安装路径,本文档设置的默认安装路径是C:\Keil_51,即安装在C盘,(也可选择安装路径是D:\Keil_51或者其他盘)。

 

图4:添加Keil C51安装路径

  • 注:安装在默认路径下,可以省去一些不必要的麻烦。如果用户安装在其他路径,要注意路径不宜过深,并且路径中不要有中文,否则,在打开、编译工程或者仿真的时候可能会出现问题。

  1. 根据提示填入相关用户信息,然后点击[Next], 如下图所示。

 

图5:填写Keil C51安装信息

  • 说明:未注册版本有2K的代码限制,当超过2K时,是无法编译工程的。
  1. 等待Keil C51安装完成,如下图所示。

 

图6:Keil C51安装中

  1. 点击【Finish】完成安装,如下图所示。

 

图7:Keil C51安装完后

  1. 安装USB转串口驱动

开发板上设计了USB转TTL电路,使用的USB转串口芯片是CH340,使用前需要安装驱动。

  • 说明:如果计算机上已经安装了CH340的驱动,则无需再安装,可直接跳过此步骤。

CH340和CH341是共用同一个驱动的,因此看到驱动的名称是“CH341ser”时不用奇怪,按照下面的步骤安装即可。

  1. 解压压缩文件ch341ser,双击打开 “ch341ser.exe”,出现下面界面,点击安装。

 

图8:打开CH340驱动软件

  • 说明:安装USB转串口驱动失败的处理方法

用Type-C USB数据线将开发板J1连接到电脑的USB口,并将开发板上的电源开关拨到“ON”的位置,确认开发板的电源指示灯已经点亮后,再安装USB转串口驱动即可。

  1. 查看CH340的端口号:

需要使用USB数据线连接电脑和开发板并打开开发板上的电源开关后才能查看。

选中“我的电脑”后右键打开属性窗口,再打开设备管理器,在设备管理器中查看CH340的端口号,如下图所示。

 

图9:设备管理器中查看CH340设备

  1.  安装stc-isp软件

STC-ISP-15xx是 STC(宏晶科技)针对STC单片机提供的专用的ISP下载软件, STC-ISP-15xx使用简便,并且集成了众多的实用工具,如串口调试助手、波特率和定时器计算工具等,现已被广泛使用。该软件版本会在STC官网上不断更新,用户后续可查看并下载最新版本,STC官网:STC: 32位 8051 单片机创新者, ISP/IAP 技术创新者,中华有为:除了胜利,我们已无路可走

STC-ISP-15xx是绿色软件,无需安装,解压后即可使用,但是我们需要使用STC-ISP-15xx软件将STC器件/头文件和仿真驱动添加到Keil,否则,Keil里面是找不到对应的芯片的,操作步骤如下。

  1.   解压压缩文件stc-isp-15xx-v6.90D,双击“stc-isp-15xx-v6.90D.exe” 打开STC-ISP-15xx软件,打开后,会弹出产品通知信息窗口,如果下图所示,点击[关闭]按钮关闭通知窗口即可。

图10:打开STC-ISP软件

  1.   打开“Keil仿真设置”选项卡,点击“添加型号和头文件到Keil中…”按钮添加。

 

图11:添加头文件和仿真设置

  • 注:无论开发板选择的是不是仿真型芯片,都需要进行此步操作。
  1.   在弹出的窗口中导航到Keil C51的安装文件夹,选中文件夹后点击[确定],添加成功后会弹出提示窗口,如下图所示。

 

图12:添加头文件和仿真设置成功

  1. Keil常用操作
  1. 批量注释和批量取消注释

在编写和调试程序的时候,我们经常会遇到需要注释代码块的情况(多行代码),这里我们给出两种常用的批量注释方法。

  1. 第一种方法:使用菜单栏中的快捷按钮

批量注释方法:先选中需要注释的代码,然后点击下图中红框内的按钮即可批量注释代码。

 

图13:批量注释

取消批量注释方法:先选中需要取消注释的代码,然后点击下图中红框内的按钮即可批量取消代码注释。

 

图14:批量取消注释

  1. 第二种方法:使用条件编译

下图中使用条件编译命令“#if…endif”注释了36、37、38行这三行代码,如果要取消注释,把0改为1即可,这种方法简单快捷,在调试中很实用。

 

图15:使用条件编译命令注释代码块

  1. 返回/前进

浏览程序的时候,经常需要返回到上次浏览的位置或者前进到上次返回的位置,这时,可以使用下图所示的快捷按键。

 

图16:前进和返回

  1. 跳转到变量或函数定义位置

开发和调试程序时,经常需要查看一些变量或函数的定义,这时可以按照下图所示的方法跳转到变量或函数定义的位置,查看变量或函数。

  • 说明:必须编译成功后才可以跳转。

 

图17:跳转到变量或函数定义位置

  1. 查找所有包含目标字符的出处

开发和调试程序时,查找功能是必不可少的,Keil C51中使用查找功能的步骤如下(以在整个工程中查找为例说明)。

  1. 选中待查找的内容(也可以打开查找窗口后手动输入查找内容),然后点击菜单栏中的“Edit”,在弹出的下拉菜单中点击“Find in files”打开查找窗口,如下图所示。(也可键盘操作快捷键CTrl+F)

 

图18:打开查找窗口

  1. 设置查找选项(这里设置:在文件中查找,查找条件是全文匹配,查找范围为整个工程),之后点击“Find All”按钮,如下图所示。

 

图19:查找窗口

  1. 查看结果:Keil信息窗口中会显示查找的结果,如下图所示。

 

图20:查找结果

  1. 快速打开工程m51文件

m51文件将单片机存储器的使用情况以及变量的信息展示给开发人员,通过分析m51文件,开发人员可以了解,往往可帮忙解决许多棘手的问题。m51文件快递打开方法如下图所示。

  • 说明:工程编译成功后,才会生成m51文件,因此工程必须编译后才能打开m51文件。

 

图21:打开工程map文件

  1. 常见问题及解决办法
  1. 工程无法编译
  1. 现象:打开工程后,编译按钮无法点击,并且信息窗口提示“C51工具链”未安装,如下图所示。

 

图22:提示信息

  1. 原因:使用Keil MDK打开了Keil C51的工程。
  2. 解决方法:安装Keil C51软件。
  • 注:我们电脑里面可能也安装了用于开发STC32 的Keil C251,如果用Keil C251打开了Keil C51的工程,也会导致工程无法编译。

  1. 编译时提示代码超限
  1. 现象:Keil C51编译工程,出现如下图所示信息。

 

图23:编译报错

  1. 原因:Keil C51没有注册,未注册版本有代码限制,所以工程较大超出2K后编译会报错。
  2. 解决方法: 注册Keil C51

  1. 无法跳转到函数或者变量的定义

当我们在keil中选中函数或者变量右键跳转到定义的时候,弹出错误提示“无可用的浏览信息”,从而无法跳转,如下图所示。

 

图24:无法跳转到定义

原因主要有以下两个方面:

  1. 工程没有编译或者程序中有错误,没有编译成功:这种情况下,编译工程成功后,即可跳转到定义。
  2. Browse information没有勾选:点击魔术棒,,如下图所示。

 

图25:点击魔术棒

在弹出的对话框中切换到output选项卡,之后勾选“Browse information”选项,勾选后需要重新编译工程。

图26:勾选“Browse information”选项

 

  1. 无法发现器件

使用Keil C51打开工程时,提示“Err:Device not found”,如下图所示。

 

图27:Err:Device not found

这是因为我们没有使用STC-ISP-15xx软件将STC器件/头文件和仿真驱动添加到Keil,按照下图所示,将STC器件/头文件和仿真驱动添加到Keil即可。

 

图28:添加头文件和仿真设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM运行时数据区

在上篇文章中我们详细介绍了JVM类加载子系统:https://blog.csdn.net/u011837804/article/details/129049418,Class文件被类加载子系统加载后就进入到了运行时数据区等待执行引擎执行,运行时数据区也是JVM中最重要的一部分,GC、OOM…

基于springboot+mybatis+mysql+vue运动会报名管理系统

基于springbootmybatismysqlvue运动会报名管理系统一、系统介绍二、功能展示1.用户登陆2.报名详情(运行员)3.比赛报名(运动员)4.个人参赛项目(运动员)5.加油稿展示(运动员)6.学院积分排名(运动员…

Spring MVC 源码 - HandlerMapping 组件(三)之 AbstractHandlerMethodMapping

HandlerMapping 组件HandlerMapping 组件,请求的处理器匹配器,负责为请求找到合适的 HandlerExecutionChain 处理器执行链,包含处理器(handler)和拦截器们(interceptors)handler 处理器是 Objec…

K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示

K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明UART对应程序:IIC对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCVL53L0X模块1.2、STM32F103C8T6VL53L0X模块五、基础知识学习与相关资料下载六、…

打印流、转换流、数据流 、随机访问流

Java知识点总结:想看的可以从这里进入 目录5、打印流6、转换流7、数据流8、随机访问流5、打印流 实现将基本数据类型的数据格式转化为字符串输出,它们提供了一系列重载的print()和println()方法,用于多种数据类型的输出,这种流不会…

基于react+typescript的前端组件库violet-design(字节青训营项目)

文章目录前言一、项目介绍💌 介绍特性兼容性📦 安装使用 npm 安装使用 yarn 安装浏览器引入🔨 示例1. 引入样式2. 使用组件按需加载TypeScript✨ 组件🔗 链接二、项目实现2.1 技术选型2.2 架构设计2.2.1 目标用户和场景2.2.2 组件…

容器技术概述

容器化应用程序 软件应用程序通常依赖于运行时环境提供的其他库、配置文件或服务。软件应用程序的传统运行环境是物理主机或虚拟机,应用程序依赖项作为主机的一部分安装。 例如,考虑一个 Python 应用程序,它需要访问实现 TLS 协议的公共共享…

第 16 章_多版本并发控制

第 16 章_多版本并发控制 1. 什么是MVCC MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作…

剑指 Offer 27. 二叉树的镜像

剑指 Offer 27. 二叉树的镜像 难度:easy\color{Green}{easy}easy 题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 镜像输出: 示例 1: 输入:root [4,2,7,1,3,…

Office 365 备份与恢复

Microsoft Office 365中的不同服务几乎可以随时访问,这要归功于Microsoft的99.9%正常运行时间记录。但是,Office 365步履蹒跚的一个方面是提供了一种从意外数据丢失中恢复的方法。Microsoft 提供的数据保留功能并非适用于所有数据丢失情况的可行解决方案…

亿级高并发电商项目-- 实战篇 --万达商城项目 十二(编写用户服务、发送短信功能、发送注册验证码功能、手机号验证码登录功能、单点登录等模块)

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

Leetcode力扣秋招刷题路-0082

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 82. 删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1&#…

这6个视频剪辑素材库,你一定要知道~

推荐5个免费商用视频素材网站,建议收藏哦! 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 网站素材量很大,有设计、图片、音频、视频等超多素材,大部分都能免费下载。视频素材都很高清,有自然、人物、科技、农业…

前端页面开发模块组织结构

模块组织 任何超过 1000 行的 CSS 代码,你都曾经历过这样的体验: 这个 class 到底是什么意思呢?这个 class 在哪里被使用呢?如果我创建一个 xxoo class,会造成冲突吗?Reasonable System for CSS Stylesheet Structure 的目标就是解决以上问题,它不是一个框架,而是通过…

Freemarker快速入门

freemarker提供很多指令用于解析各种类型的数据模型参考地址&#xff1a;http://freemarker.foofun.cn/ref_directives.html一.测试搭建Freemarker的运行环境并进行测试.1.添加Freemarker与SpringBoot的整合包XML <!-- Spring Boot 对结果视图 Freemarker 集成 --> <d…

互斥锁原理

如果有交互的公共数据区域&#xff0c;我们需要让一个进程先执行&#xff0c;一个进程后执行&#xff0c;互斥锁就是用锁的方式让他们的竞争关系变得有序。 临界区问题 临界区是在程序之间有公共数据交互时产生的区域&#xff0c;没有两个进程可以在它们各自的临界区同时执行…

我的 System Verilog 学习记录(1)

引言 技多不压身&#xff0c;准备开始学一些 System Verilog 的东西&#xff0c;充实一下自己&#xff0c;这个专栏的博客就记录学习、找资源的一个过程&#xff0c;希望可以给后来者一些借鉴吧&#xff0c;IC找工作的都加把油&#xff01; 本文是准备先简单介绍一下环境搭建…

C++11智能指针std::shared_ptr介绍及使用

介绍 shared_ptr是一种智能指针(smart pointer)&#xff0c;作用有如同指针&#xff0c;但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting),比如我们把只能指针赋值给另外一个对象,那么对象多了一个智能指针指向它,所以这个时候引用计数…

洛谷P1125 [NOIP2008 提高组] 笨小猴 C语言/C++

[NOIP2008 提高组] 笨小猴 题目描述 笨小猴的词汇量很小&#xff0c;所以每次做英语选择题的时候都很头疼。但是他找到了一种方法&#xff0c;经试验证明&#xff0c;用这种方法去选择选项的时候选对的几率非常大&#xff01; 这种方法的具体描述如下&#xff1a;假设 maxn\…

【C++】2.类和对象(上)

1.面向过程和面向对象 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。 2.类的引入…