当前位置: 首页 > news >正文

单片机开发--keil5

一.keil5

Keil uVision5是一个集成开发环境(IDE),用于对嵌入式系统中的微控制器进行编程。它是一个软件套件,包括源代码编辑器、项目经理、调试器以及微控制器开发、调试和编程所需的其他工具。Keil uVision5 IDE主要用于对基于ARM架构的微控制器进行编程。
Keil uVision5 IDE支持业界常用的各种基于ARM的微控制器。它为软件开发提供了一个全面的环境,并允许开发人员以高效的方式编写、编译和调试代码。IDE还包括一个模拟器,允许开发人员在不需要实际硬件的情况下测试他们的代码。
此外,Keil uVision5 IDE提供不同级别的优化,帮助开发人员从微控制器中获得最大性能。它还支持各种通信协议,如UART、SPI、I2C、CAN和USB。此外,IDE包括为常用函数预先构建的代码库,从而减少了开发时间和工作量。
总之,Keil uVision5 IDE是开发基于微控制器的嵌入式系统的强大工具。它使开发人员能够在单个环境中编写、测试和调试代码,从而减少开发时间并提高效率。

二.keil5建立项目

  • 1.选择project下的“new uvsion project"
    在这里插入图片描述
  • 2.建立项目,保存
    在这里插入图片描述
    这里的项目名可以是中文也可以是英文,看你习惯。
  • 3.建立.c文件,既可以在file下拉选项中建立,也可以使用图中快捷键
    在这里插入图片描述
  • 4.保存文件,注意一定要自己手动添加.c后缀
    在这里插入图片描述
  • 5.双击”Source Group 1" ,选择你刚刚新建的文件进行添加在这里插入图片描述
  • 6.然后在建立的.c文件中进行编译

三.keil5断点调试(软件仿真)

  • 1.完成.c文件的编写,进行保存
    在这里插入图片描述
  • 2.点击图中选项,开始调试
    在这里插入图片描述
  • 3.借用图中1工具栏开始单步调试
    在这里插入图片描述
  • 4.可以通过2处查看引脚的变换,通过3处添加变量来查看该变量每次运行的变换

注意:如果你要进行断点调试,请确保你的程序已经烧录到开发板上。

四.硬件仿真

1.软件仿真和硬件仿真

软件仿真和硬件仿真什么区别?软件仿真就是没有硬件参与的仿真,完全是模拟实现的。硬件仿真是将程序下载到控制芯片的FLASH或RAM中,直接在硬件上实现仿真。
总体上,仿真还是比较有用的,比如在排查软件问题(寄存器配置等)的时候,使用软件仿真是非常靠谱的。而如果涉及到硬件的问题(比如你的板子代码需要读取外部信号,或者输出信号等),可能需要用到硬件仿真,或者说在线仿真。

软件仿真,用计算机科学的话说就是断点调试,也就是上面的第三部分

2.硬件仿真过程

  • 1.在51单片机上用仿真器替代原来的STC89C52芯片
    在这里插入图片描述

在线仿真器不仅可以用来仿真,还可以用来做一个高速芯片。

  • 2.在烧录软件中添加仿真器驱动,选择你安装的keil文件路径,确定
    在这里插入图片描述
  • 3.添加后选择第一个选项,开始检测
    在这里插入图片描述
  • 4.先关闭电源,再打开电源,开始烧录
    在这里插入图片描述
  • 5.在keil5中按如下顺序进行设置,3处选择STC。
    在这里插入图片描述
    如果你向我这样是灰的,选择不了,请关闭keil5转而从你的项目目录下打开对应的.uvproj文件再进行相关操作。
  • 6.选择STC15F2K60S2型号
    在这里插入图片描述
  • 7.在debug中进行如下设置
    在这里插入图片描述
  • 8.开始通过debug工具栏进行调试

五.keil5快捷键

以下是 Keil uVision5 常用的一些快捷键:

通用快捷键:
新建文件:Ctrl+N
打开文件:Ctrl+O
保存文件:Ctrl+S
另存为:Ctrl+Shift+S
撤销:Ctrl+Z
重做:Ctrl+Y
剪切:Ctrl+X
复制:Ctrl+C
粘贴:Ctrl+V
查找:Ctrl+F
替换:Ctrl+H
全选:Ctrl+A
删除行:Ctrl+L
代码折叠:Ctrl+M

编辑器中快捷键:
自动缩进:Tab
跳转到对应的括号:Ctrl+]
复制一行到下一行:Ctrl+Shift+D
移动当前行到上一行:Alt+Up
移动当前行到下一行:Alt+Down

调试器中快捷键:
开始调试:F5
停止调试:Shift+F5
运行到光标处:F6
逐语句执行:F7
逐过程执行:F8
查看变量值:鼠标悬停变量名或在变量名上右键选择 Watch

视图:
Ctrl + E 文件浏览器
Ctrl + Shift + F 工程视图
Ctrl + Shift + U 输出窗口
Ctrl + W 关闭活动窗口

调试:
F5 开始调试
F10 单步执行
F11 单步进入子函数
F12 跳出子函数

项目:
Ctrl + B 生成
Ctrl + R 运行
Ctrl + Shift + B 重生成
Ctrl + Shift + R 停止运行

编辑:
Ctrl + N 新建文件
Ctrl + O 打开文件
Ctrl + S 保存文件
Ctrl + A 全选
Ctrl + Z 撤销
Ctrl + Y 重做
Ctrl + F 查找
Ctrl + H 替换
Ctrl + G 转到行
还有许多其他的快捷键可以根据自己的需求进行设置,可以在工具栏的“选项”中进行。

本文的硬件基础是清翔电子提供的C51单片机。

相关文章:

单片机开发--keil5

一.keil5 Keil uVision5是一个集成开发环境(IDE),用于对嵌入式系统中的微控制器进行编程。它是一个软件套件,包括源代码编辑器、项目经理、调试器以及微控制器开发、调试和编程所需的其他工具。Keil uVision5 IDE主要用于对基于A…...

<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录 TCP的通信机制的核心特性 四、滑动窗口 1)什么是滑动窗口? 2)滑动窗口的作用是什么? 3)批量传输出现丢包如何处理? 1> 接收端ACK丢包 2> 发送端数据包丢包 4)适用性 TCP的通…...

听GPT 讲Rust源代码--library/portable-simd

File: rust/library/portable-simd/crates/core_simd/examples/spectral_norm.rs spectral_norm.rs是一个示例程序,它展示了如何使用Portable SIMD库中的SIMD(Single Instruction Multiple Data)功能来实现频谱规范化算法。该示例程序是Rust源…...

CMake入门教程【基础篇】CMake+Minggw构建项目

文章目录 Minggw是什么Minggw下载CMake下载安装第1步:下载CMake第2步:安装CMake 如何构建和编译项目:使用CMake和MinGW总结 Minggw是什么 MinGW(Minimalist GNU for Windows)是一个免费的软件开发环境,旨在…...

2024年原创深度学习算法项目分享

原创深度学习算法项目分享,包括以下领域: 图像视频、文本分析、知识图谱、推荐系统、问答系统、强化学习、机器学习、多模态、系统界面、爬虫、增量学习等领域… 有需要的话,评论区私聊...

Linux自定义shell编写

Linux自定义shell编写 一.最终版本展示1.动图展示2.代码展示 二.具体步骤1.打印提示符2.解析命令行3.分析是否是内建命令1.shell对于内建名令的处理2.cd命令3.cd函数的实现4.echo命令的实现5.export命令的实现6.内建命令函数的实现 4.创建子进程通过程序替换执行命令5.循环往复…...

堆的应用:堆排序和TOP-K问题

上次才讲完堆的相关问题:二叉树顺序结构与堆的概念及性质(c语言实现堆 那今天就接着来进行堆的主要两方面的应用:堆排序和TOP-K问题 文章目录 1.堆排序1.1概念、思路及代码1.2改良代码(最初建立大堆用AdjustDow) 2. TO…...

element表格排序功能

官方展示 个人项目 可以分别对每一项数据进行筛选 注&#xff1a;筛选的数据不能是字符串类型必须是数字类型&#xff0c;否则筛选会乱排序 html <el-table :data"tableData" border height"600" style"width: 100%"><el-table-co…...

HNU-Java程序设计基础训练-2023

1.DNA序列&#xff08;Java&#xff09; 【问题描述】 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例&#xff08;定义为GC-Ratio&#xff09;是序列中G和C两个字母的总的出现次数除以总的字母数目&#xff08;也就是序列长度&#xff09;。在基因工程中&#xf…...

数据库和数据库编程

数据库、数据表、表数据操作以及数据库编程相关的知识点 1. 数据库的概念&#xff1a; 数据库是用于存储和组织数据的系统。数据库管理系统(DBMS)是管理数据库的软件&#xff0c;提供对数据的访问、查询和维护。关系型数据库是一种通过表格结构来组织和管理数据的数据库。 2…...

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…...

右键菜单“以notepad++打开”,在windows文件管理器中

notepad 添加到文件管理器的右键菜单中 找到安装包&#xff0c;重新安装一般即可。 这里有最新版&#xff1a;地址 密码:f0f1 方法 在安装的时候勾选 “Context Menu Entry” 即可 Notepad的右击打开文件功能 默认已勾选 其作用是添加右键快捷键。即&#xff0c;对于任何…...

JSON.parseObject强制将自动转化的Intage型设置为Long型

通过Redis或Caffeine存储入json型String&#xff0c;通过JSON.parseObject自动类型转化之后&#xff0c;数值会优先转为Intage&#xff0c;如果存入的字符值大于Intage最大值&#xff0c;会自动转为Long型&#xff1b; 需求是&#xff1a;实要取出时数值类型值为Long&#xff1…...

Redis的集群模式:主从 哨兵 分片集群

基于Redis集群解决单机Redis存在的问题&#xff0c;在之前学Redis一直都是单节点部署 单机或单节点Redis存在的四大问题&#xff1a; 数据丢失问题&#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 > 利用Redis数据持久化的功能将数据写入磁盘并发能力问题…...

Note: An Interesting Festival

An Interesting Festival 一个有趣的节日。 festival The Agricultural Feast takes place after the independence Day. 农业盛会在独立日后举行 takes place independence feast agricultural It is not a worldwide celebration. 它不是一个全球的庆典。 worldwide ce…...

iview表格固定列横向滚动条无法拖动问题

文章目录 问题解决办法 问题 在使用iview的表格组件时&#xff0c;遇到了设置固定列表格后滚动条无法拖动的问题&#xff0c;当对表格列进行固定后&#xff0c;底部的横向滚动条就无法拖动了&#xff0c;主要的问题就是固定区域盖住了横向滚动条。 解决办法 在组件内直接加下…...

Python序列之集合

系列文章目录 Python序列之列表Python序列之元组Python序列之字典Python序列之集合&#xff08;本篇文章&#xff09; Python序列之集合 系列文章目录前言一、集合是什么&#xff1f;二、集合的操作1.集合的创建&#xff08;1&#xff09;使用{}创建&#xff08;2&#xff09;…...

智慧园区物联综合管理平台之架构简述

总体架构 系统总体划分为物联感知系统层、 核心平台层、 综合运营服务平台和展示层四部分。 物联感知系统层 物联感知系统主要是支撑园区智能化运行的各子系统, 包括门禁系统、 视频监控系统、 车辆管理系统等。 核心平台层 核心平台层包括: 园区物联综合管理平台和园区…...

国科大图像处理2023速通期末——汇总2017-2019

国科大2023.12.28图像处理0854期末重点 图像处理 王伟强 作业 课件 资料 一、填空 一个阴极射线管它的输入与输出满足 s r 2 sr^{2} sr2&#xff0c;这将使得显示系统产生比希望的效果更暗的图像&#xff0c;此时伽马校正通常在信号进入显示器前被进行预处理&#xff0c;令p…...

oracle 9i10g编程艺术-读书笔记2

配置Statspack 安装Statspack需要用internal身份登陆&#xff0c;或者拥有SYSDBA(connect / as sysdba)权限的用户登陆。需要在本地安装或者通过telnet登陆到服务器。 select instance_name,host_name,version,startup_time from v$instance;检查数据文件路径及磁盘空间&…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...