【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建
【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建
七绝·单片机
小小芯片大乾坤,
集成世界在其中。
初学虽感千重难,
实践方知奥妙通。
今天的讲法和过去不同,直接来一个多文件模块化的工程模板创建,万事开头难,我们把难事开头做,后面的就简单了,一个月之后感谢我吧。
本教程将详细指导你完成 STC8A8K64S4 单片机工程模板的创建与使用。我们将基于 Keil C51 开发工具,详细讲解每一步操作,包括文件结构的创建、移植过程、移植文件名称及对应目录,以及 Keil 分组目录和对应文件的说明。
1️⃣ Keil C51 开发环境安装
1.1 Keil C51 介绍
Keil C51 是 Keil 公司推出的用于 8051 系列单片机的集成开发环境(IDE),支持 C 语言和汇编语言开发。
1.2 Keil C51 下载与安装
-
访问下载页面
打开 Keil 官网:https://www.keil.com,下载 Keil C51 安装包。 -
安装 Keil C51
- 右键以管理员身份运行安装包。
- 按照提示选择安装路径(路径中不能包含中文)。
- 填写个人信息(可随意填写)。
- 等待安装完成。
-
激活 Keil C51
- 以管理员身份运行 Keil C51。
- 点击
File -> License Management。 - 点击
Get LIC via Internet,按照提示填写信息并获取激活码。 - 将激活码粘贴到
New License ID Code (LIC)中,点击Add LIC完成激活。
2️⃣ STC8A8K64S4 器件支持安装
2.1 下载 STC-ISP 工具
-
访问 STC 官网
打开 STC 官网:https://www.stcmcudata.com,下载 STC-ISP 工具。 -
安装 ST极-ISP 工具
- 双击安装包,按照提示完成安装。
2.2 添加 STC 器件支持
-
打开 STC-ISP 工具
安装完成后,打开 STC-ISP 工具。 -
添加器件支持
- 在 STC-ISP 工具中,点击
Keil 仿真设置选项卡。 - 点击
添加 STC 仿真驱动到 Keil 中,选择 Keil 的安装路径。 - 等待驱动添加完成。
- 在 STC-ISP 工具中,点击
-
验证器件支持
- 打开 Keil C51,点击
Project -> Manage -> Pack Installer,查看是否已添加 STC8A8K64S4 器件支持。
- 打开 Keil C51,点击
3️⃣ 工程模板创建与使用
3.1 创建新工程
-
新建工程文件夹
在本地创建一个文件夹,例如STC8A_Project,注意路径中不能包含中文。 -
打开 Keil C51 并创建工程
- 打开 Keil C51,点击
Project -> New uVision Project。 - 选择刚才创建的文件夹,输入工程名称,例如
STC8A_Template。 - 点击
Save。
- 打开 Keil C51,点击
-
选择芯片型号
在弹出的窗口中选择STC8A8K64S4(根据实际芯片型号选择),点击OK。
3.2 文件结构创建
- 创建文件夹结构
在工程文件夹STC8A_Project中创建以下文件夹:Projects:存放不同 IDE 的工程文件。MDK-RAM:存放 Keil C51 极工程文件。
Drivers:存放所有驱动相关文件。BSP:存放底层相关的支持包。Module:存放各类软件模块,如定时器、状态机等。Core:存放核心文件。Libraries:存放 STC8A 外设库文件。
APP:存放应用程序,由用户编写,包含main函数。
- 目录结构图示
STC8A_Project/
├── Projects/
│ └── MDK-RAM/
├── Drivers/
│ ├── BSP/
│ ├── Module/
│ ├── Core/
│ └── Libraries/
└── User/
- 复制库文件与启动文件
从 STC8A 外设库中复制以下文件到对应文件夹:Drivers/Core:Drivers/STC8A_Libraries:
3.3 Keil 分组目录与对应文件
- 在 Keil 中添加分组
- 右键
Target 1,选择Add Group,创建以下分组:UserBSPModuleCoreLibraries
- 右键
- 添加文件到分组
BSP分组:添加Drivers/BSP文件夹中的文件。Module分组:添加Drivers/Module文件夹中的文件。Libraries分组:添加Drivers/Libraries/Src文件夹中的所有.c文件。Core分组:添加Drivers/Core 文件夹中的 所有.c` 文件。User 分组:添加APP` 文件夹中的文件。
- 添加头文件路径
- 点击
Project -> Options for Target -> C/C++。 - 在
Include Paths中添加以下路径:Drivers/BSPDrivers/ModuleDrivers/Libraries/IncDrivers/CoreUser
- 点击
3.4 编写主程序
-
创建
main.c文件- 右键
User分组,选择Add New Item to Group,创建main.c文件。
- 右键
-
编写代码
在main.c中添加以下代码:
#include "stc8a8k64s4.h"
#include "board_init.h"void Delay(uint32_t count) {while (count--);
}int main(void) {// 板子初始化Board_Init();// 配置 P1.0 为推挽输出P1M0 |= 0x01; // P1.0 推挽输出P1M1 &= ~0x01;while (1) {P1_0 = 0; // 点亮 LEDDelay(1000000);P1_0 = 1; // 熄灭 LEDDelay(1000000);}
}
3.5 编译与下载
-
编译工程
点击Build按钮(或按F7),确保没有错误和警告。 -
下载程序
连接开发板,点击Download按钮(或按F8),将程序下载到开发板。
4️⃣ 使用例程或模板
4.1 复制模板工程
-
从 STC8A 外设库中复制模板
找到STC8A 外设库,将其复制到本地并重命名。 -
打开工程
在 Keil C51 中打开复制的工程文件(.uvprojx)。
4.2 修改头文件路径
- 调整头文件路径
点击Project -> Options for Target -> C/C++,修改头文件路径为相对路径。
4.3 编译与下载
-
编译工程
点击Build按钮,确保没有错误和警告。 -
下载程序
连接开发板,点击Download按钮,将程序下载到开发板。
5️⃣ 总结
通过本教程,你已经完成了 STC8A8K64S4 开发环境的安装、器件支持的添加以及工程模板的创建与使用。接下来,你可以基于模板开发自己的应用程序,探索 STC8A8K64S4 的更多功能!🌟
相关文章:
【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建
【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建 七绝单片机 小小芯片大乾坤, 集成世界在其中。 初学虽感千重难, 实践方知奥妙通。 今天的讲法和过去不同,直接来一个多文件模块化的工程模板创建,万事开头难,…...
Spring Boot WebFlux 中 WebSocket 生命周期解析
Spring Boot WebFlux 中的 WebSocket 提供了一种高效、异步的方式来处理客户端与服务器之间的双向通信。WebSocket 连接的生命周期包括连接建立、消息传输、连接关闭以及资源清理等过程。此外,为了确保 WebSocket 连接的稳定性和可靠性,我们可以加入重试…...
PostgreSQL中的事务隔离
1. 事务隔离的概念 在数据库管理系统中,事务隔离是一项重要的功能,它能确保在并发访问数据库时事务之间能够独立运行,不会相互干扰。数据库系统通常支持不同级别的事务隔离,用来满足不同应用程序之间的需求。 2. 事务隔离的种类…...
基于Rye的Django项目通过Pyinstaller用Github工作流简单打包
前言 Rye的介绍和安装 Ryehttps://rye.astral.sh/Rye 完整使用教程_安装rye-CSDN博客https://blog.csdn.net/zhenndbc/article/details/144544692 正文 项目建立 配置好环境后 新建文件夹 新建文件夹,进入项目 初始化 rye init下载依赖 rye syncpycharm 打…...
ubuntu 20.04 C++ 源码编译 cuda版本 opencv4.5.0
前提条件是安装好了cuda和cudnn 点击下载: opencv_contrib4.5.0 opencv 4.5.0 解压重命名后 进入opencv目录,创建build目录 “CUDA_ARCH_BIN ?” 这里要根据显卡查询一下,我的cuda是11,显卡1650,所以是7.5 查询链接:…...
【VUE】第一期——初使用、基本语法
目录 0 前言 1 准备工作 1.1 创建vue实例 1.2 vue开发者工具 2 插值表达式 2.1 基本用法 3 常用指令 3.1 内容渲染指令 3.1.1 v-text 3.1.2 v-html 3.2 条件渲染指令 3.2.1 v-show 3.2.2 v-if 3.2.3 v-else 和 v-else-if 3.3 事件绑定指令 3.3.1 内联语句 3.3…...
计算光学成像与光学计算概论
计算光学成像所涉及研究的内容非常广泛,虽然计算光学成像的研究内容是发散的,但目的都是一致的:如何让相机记录到客观实物更丰富的信息,延伸并扩展人眼的视觉感知。总的来说,计算光学成像现阶段已经取得了很多令人振奋…...
开启科创服务新篇章:八月瓜科技CRM数字化管理系统成功上线
近日,北京八月瓜科技有限公司(以下简称 “八月瓜科技”)与纷享销客达成深度战略合作,成功部署并上线CRM数字化管理系统。此次合作是八月瓜科技在数字化转型进程中的重要里程碑,标志着其在科技创新服务领域的数字化变革…...
AI提示词(Prompt)的理解和学习指南
AI提示词(Prompt)的理解和学习指南 一、什么是AI提示词? AI提示词(Prompt)是用户输入给人工智能模型的指令或问题,用于引导模型生成特定类型的回答或内容。它如同与AI沟通的“钥匙”,设计得当…...
记录一些面试遇到的问题
重载和重写的区别 重载是overload,覆盖是override 重载属于编译时多态,覆盖属于运行时多态 运行时多态和编译时多态 运行时多态指的是在运行的时候才知道要调用哪一个函数,编译时多态是指在编译的时候就知道调用哪一个函数。 运行时多态…...
OpenHarmony4.0_Linux环境搭建
查看链接:OpenHarmony4.0_Linux环境搭建https://www.yuque.com/xinzaigeek/jishu/fs9msruqhd5nhw4i...
DeepSeek开源Day5:3FSsmallpond技术详解
2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 3FS&smallpond(又是一下发布了两个)。 3FS(Fire-Flyer File System)是 DeepSeek 内部开发的一款高性能分布式文件系统,旨在为 A…...
Java集合面试篇
目录 1.概念 1.1.数组与集合的区别,用过哪些? 1.2.说说Java中的集合? 1.3.Java中的线程安全的集合是什么? 1.4.集合遍历的方法有哪些? 2.List 2.1.list可以一边遍历一边修改元素吗? 2.2.Arraylist和…...
plt和cv2有不同的图像表示方式和颜色通道顺序
在处理图像时,matplotlib.pyplot (简称 plt) 和 OpenCV (简称 cv2) 有不同的图像表示方式和颜色通道顺序。了解这些区别对于正确处理和显示图像非常重要。 1. 图像形状和颜色通道顺序 matplotlib.pyplot (plt) 形状:plt 通常使用 (height, width, cha…...
Sqlserver安全篇之_手工创建TLS用到的pfx证书文件
Sqlserver官方提供的Windows Powershell脚本 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 # Define parameters $certificateParams {Type "SSLServerAuthentication"Subje…...
基于RapidOCR与DeepSeek的智能表格转换技术实践
基于RapidOCR与DeepSeek的智能表格转换技术实践 一、技术背景与需求场景 在金融分析、数据报表处理等领域,存在大量图片格式的表格数据需要结构化处理。本文介绍基于开源RapidOCR表格识别与DeepSeek大模型的智能转换方案,实现以下典型场景: …...
创建阿里云CDN
创建阿里云CDN CDN域名管理 SSL证书上传...
tomcat的web管理
进入到conf cd /usr/local/tomcat/conf/备份tomcat-users.xml cp tomcat-users.xml{.,bak}编辑tomcat-users.xml vim tomcat-users.xml增加以下内容 配置tomcat-users.xml <role rolename"manager-gui"/><role rolename"admin-gui"/><use…...
【Linux系统】-----进程初相识:原理与概念全解析
Linux系列 文章目录 Linux系列前言一、进程的概念二、进程的管理三、Linux操作系统的进程管理3.1、进程标识符3.2、查看进程3.3、查看进程的PID和PPID 前言 经过前两篇文章的铺垫,我们对操作系统的管理方式已经有了比较完整的认识,今天我们将学习Linux比…...
分布式系统设计(架构能力)
一、微服务架构 服务治理 Nacos 注册中心(AP模式) CAP选择:Nacos 默认采用 AP 模式(可用性 分区容忍性),通过心跳检测实现服务健康管理。服务发现:客户端定时拉取服务列表,支持权重…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
