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

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用

1.概述

在学习51单片机过程中,选择了STC的12C2052AD型号单片机作为入门芯片。前几个课题实验使用默认的内部晶振烧录程序,运行都没有问题。
选择一个LED亮度渐变的课题做实验,设置了外部晶振烧录程序。第一次烧录成功之后就再也不能烧录了,难道是单片机烧了?损坏了? 然后开始了各种折腾尝试过使用内部晶振烧录程序,外部晶振烧录都没有反应,被这个问题困扰住了。接下来的几天阅读STC12C2052AD单片机用户手册寻找答案。。。

2.场景复现

2.1.LED灯渐变实验步骤

  • 1.按照下图给出的接线图在面包板上接好元器件。如果没有多个LED灯,只接其中一个也可以。
  • 2.使用STC-ISP程序烧录程序,选择外部晶振。点击下载程序,成功。
  • 3.LED按照编写好的程序运行,亮度由暗到亮逐渐变化,这个实验完成了。
  • 4.断掉单片机的电源,拆下与单片机连接的元器件。
  • 5.给单片机通电,然后给单片机烧录程序,选择内部晶振。没有反应,不能烧录了。
  • 6.选择外部晶振,给单片机烧录程序,还是没有反应,不能烧录。

file

3.单片机起死回生

3.1.定位问题过程

第一次做出假设并验证

难道这个单片机坏了吗,还是STC-ISP烧录软件设置不正确,或者电压不稳定导致不能烧录程序,下面开始验证这几个假设。

  • 首先换了一个新的单片机按照上面的操作步骤烧录程序,第一次成功了,第二次同样不能烧录了。
  • 问题就出现在使用了外部晶振,难道是硬件导致的吗。

由于对单片机了解匮乏,暂时没有思路了,这个时候需要对单片机更加深入的了解,掌握更多的信息在来解决这个问题。
通过阅读STC12C2052AD单片机用户手册找到了如下两个关键信息

  • 单片机通过UART串口接收数据,需要晶振才能启动
  • STC-ISP设置外部晶振在下次冷启动后生效
第二次做出假设并验证
  • 1.第一次烧录程序选择外部晶振并不是通过外部晶振烧录程序,依旧使用内部晶振完成的烧录程序,需要在下次断电后才会切换为外部晶振。
  • 2.当第二次烧录程序时,LED灯渐变实验步骤4给单片机断电,并且拆除了外部晶振。导致第二次烧录程序使用外部晶振模式,但是硬件中没有外接晶振,UART串口无法传输数据导致烧录失败。即使后面尝试在STC-ISP烧录软件上设置为内部晶振也无法烧录,因为此时默认的模式是外部晶振。必须通过外部晶振烧录成功后,才可切换为内部晶振模式烧录程序。

3.2.解决方法

1.外部晶振烧录程序
  1. 首先按照上图将晶振与单片机连接好,使单片机可以通过外接的晶振起振。
  2. STC-ISP烧录软件设置内部晶振或者外部晶振都可以,因为当前单片机使用的是外部晶振。假设我们在STC-ISP设置为外部晶振模式,点击下载程序,程序烧录成功!
2.自由切换内外晶振烧录程序

上面的尝试验证了第二次的推理是正确的,那么掌握了这个原理后就可以随心所欲的切换内外晶振烧录程序了。

  • 内部晶振切换为外部晶振
1.单片机硬件上是否外接晶振不重要,只有一个单片机即可。
2.在STC-ISP上设置外部晶振,然后点击下载程序。此次烧录程序使用的是内部晶振,他会成功。
3.断掉单片机5V正极电源,在接通5V电源。此时单片机才切换到了外部晶振。
4.再次烧录程序就不会成功了,因为它切换为了外部晶振,只有硬件外接晶振才可烧录程序。
  • 外部晶振切换为内部晶振
1.当前单片机是外部晶振模式,第一次烧录程序必须为单片机硬件外接晶振,这样他才能通过外部晶振起振。
2.在STC-ISP上设置内部晶振,然后点击下载程序。此次烧录程序使用的是外部晶振。
3.断掉单片机5V正极电源,在接通5V电源。此时单片机才切换到了内部晶振。

4.总结

文章概述中描述的问题,原因有两点。

  1. 在STC-ISP设置内外部晶振模式,第一次烧录程序后并不生效,需要在烧录完成后,再手动冷启动后生效。
  2. 单片机烧录程序是通过UART串口,该串口数据传输依赖晶振,没有晶振将无法传输数据。

因此解决这个问题的关键点就是判断当前单片机使用的是内部还是外部晶振,如果无法判断当前使用是哪个晶振,那就把外部晶振接好,为单片机同时提供内外晶振,在烧录程序时有单片机自己选择。只要它找到了晶振就解决了不能烧录程序的问题。

相关文章:

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用 1.概述 在学习51单片机过程中,选择了STC的12C2052AD型号单片机作为入门芯片。前几个课题实验使用默认的内部晶振烧录程序,运行都没有问题。 选择一个LED亮度渐变的课题做实验&…...

使用STM32+SPI Flash模拟U盘

试验目的:使用STM32F103C8T6 SPI Flash(WSQ16)实现模拟U盘的功能 SPI Flash读写说明: Step1 设置SPI1 用于读取SPI Flash; Step2:设置SPI Flash 的使能信号 Step3:使能USB通信 Step4&#xf…...

【自主探索】基于 frontier_exploration 的单个机器人自主探索建图

文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务…...

模板初阶(1):函数模板,类模板

一、函数模板 1.1 概念 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型产生函数的特定类型版本。 格式&#xff1a; template <typename T>或template <class T> template <class T>…...

AIGC: 关于ChatGPT中生成输出表格/表情/图片/图表这些非文本的方式

ChatGPT 不止是 文本输出 ChatGPT是一个文本模型, 它本身并不能直接去生成图片图表等内容在我们的工作当中&#xff0c;经常需要通过表格, 图表的方式去进行数据的处理和展示在这种情况下&#xff0c;GPT由于不支持去直接的生成图片和图表&#xff0c;我们还能够使用它的GPT帮…...

gen_arrow_contour_xld

area_center (SymbolRegions, Area, Row, Col) gen_arrow_contour_xld (Arrow, Row sin(rad(Orientation)) * 70, Col - cos(rad(Orientation)) * 70, Row - sin(rad(Orientation)) * 70, Col cos(rad(Orientation)) * 70, 25, 25) gray_range_rect&#xff1a;用一个矩形…...

智能时代的智能工具(gpt)国产化助手

目前gpt对代码以及其他领域都是可以支持&#xff0c;在国内有很多&#xff0c;常用的百度的 文心一言 &#xff0c;阿里的 通义千问 &#xff0c;还有&#xff08;“豆包”&#xff0c;“”讯飞星火“”&#xff09;等&#xff0c;除了写代码可以外&#xff0c;也可以很好的支持…...

量子计算 | 解密著名量子算法Shor算法和Grover算法

专栏集锦&#xff0c;大佬们可以收藏以备不时之需 Spring Cloud实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏&#xff1a;https:/…...

缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置 前言 在 Python 的logging模块中&#xff0c;它不仅提供了基础的日志功能&#xff0c;还拥有一系列高级配置选项来满足复杂应用的日志管理需求。 说到logging 模块的高级配置&#xff0c;必须提及日…...

​LeetCode解法汇总1410. HTML 实体解析器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 「HTML 实…...

OpenGL 绘制旋转球(Qt)

文章目录 一、简介二、实现代码三、实现效果一、简介 这里其实就是指三个互相垂直的三个圆形,正好之前已经完成了圆形平面的绘制,那么这里就需要对之前的圆形进行一些改造,使得它们可以以任意一种姿态在OpenGL中进行绘制(添加变换矩阵)。 这里同样对其进行封装,具体内容如…...

解决:javax.websocket.server.ServerContainer not available 报错问题

原因&#xff1a; 用于扫描带有 ServerEndpoint 的注解成为 websocket&#xff0c;该方法是 服务器端点出口&#xff0c;当进行 SpringBoot 单元测试时&#xff0c;并没有启动服务器&#xff0c;所以当加载到这个bean时会报错。 解决方法&#xff1a; 加上这个注解内容 Spr…...

81基于matlab GUI的图像处理

基于matlab GUI的图像处理&#xff0c;功能包括图像颜色处理&#xff08;灰度图像、二值图像、反色变换、直方图、拉伸变换&#xff09;&#xff1b;像素操作&#xff08;读取像素、修改像素&#xff09;、平滑滤波&#xff08;均值平滑、高斯平滑、中值平滑&#xff09;、图像…...

虚拟机系列:vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?以及相互转换

一. VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面: 首先两种软件的安装使用教程如下: VMware ESXI 安装使用教程 Oracle VM VirtualBox安装使用教程 商业模式:VMware是一家商业公司,而Oracle VM VirtualBox是开源软件; 功能:VMware拥有更多的功能和…...

Go lumberjack 日志轮换和管理

在开发应用程序时&#xff0c;记录日志是一项关键的任务&#xff0c;以便在应用程序运行时追踪问题、监视性能和保留审计记录。Go 语言提供了灵活且强大的日志记录功能&#xff0c;可以通过多种方式配置和使用。其中一个常用的日志记录库是 github.com/natefinch/lumberjack&am…...

git常用命令(git github ssh)

目录 1、语法说明2、本地仓库相关操作建立一个git文件(git init)把工作区的文件添加到暂存区(git add)把暂存区的文件添加到本地仓库(git commit)查看暂存区和本地仓库中的文件(git ls-files)查看文件夹下所有文件的状态(git status)查看版本库中的提交记录(git log)恢复的文件…...

完美解决:Nginx访问PHP出现File not found.

目录 解决方法一&#xff1a; 解决方法二&#xff1a; 遇到 File not found. 出现的问题解决&#xff1a; 解决方法一&#xff1a; 修改nginx的主配置文件。 vi /etc/nginx/nginx.conf location ~ \.php$ { root html; fastcgi_pass …...

音视频5、libavformat-2

4、封装 Muxers (封装器)以 AVPacket 的形式获取编码数据并将其写入到指定容器格式的文件或输出字节流中。 muxing过程中最重要的API函数有: avformat_write_header() 用于写入文件header; av_write_frame() / av_interleaved_write_frame() 用于写…...

python opencv -模板匹配

python opencv -模板匹配 模板匹配就是&#xff0c;我们现有一个模板和一个图片&#xff0c;然后&#xff0c;在这个图片中寻找和模板近似的部分。 在opencv 中主要通过cv2.matchTemplate这个函数去实现。 下面我们先看一下&#xff0c;模板图片和需要匹配的图片&#xff1a…...

如何用CustomTkinter快速构建现代化Python桌面应用界面

如何用CustomTkinter快速构建现代化Python桌面应用界面 【免费下载链接】CustomTkinter A modern and customizable python UI-library based on Tkinter 项目地址: https://gitcode.com/gh_mirrors/cu/CustomTkinter 你是否厌倦了传统Python桌面应用那种陈旧、单调的外…...

重新定义四足机器人:openDogV2从机械执行到环境感知的颠覆性演进

重新定义四足机器人&#xff1a;openDogV2从机械执行到环境感知的颠覆性演进 【免费下载链接】openDogV2 项目地址: https://gitcode.com/gh_mirrors/op/openDogV2 在机器人技术快速发展的今天&#xff0c;开源四足机器人项目openDogV2正在重新定义智能机械伙伴的可能性…...

终极实战指南:深度解析Cursor-Free-VIP突破AI编程助手限制的技术架构与实现

终极实战指南&#xff1a;深度解析Cursor-Free-VIP突破AI编程助手限制的技术架构与实现 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Yo…...

如何一键永久备份微信聊天记录?WeChatMsg免费工具全解析

如何一键永久备份微信聊天记录&#xff1f;WeChatMsg免费工具全解析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

【生产环境零事故日志架构】:基于127个微服务节点验证的Docker日志分级采集方案(含logrotate+rsyslog+Loki无缝迁移路径)

第一章&#xff1a;Docker 日志优化Docker 容器默认将应用 stdout/stderr 输出重定向为 JSON 格式日志&#xff0c;长期运行易导致磁盘空间耗尽、查询效率低下及日志轮转缺失。优化日志行为需从驱动配置、大小限制与外部集成三方面协同治理。配置日志驱动与轮转策略 通过 --log…...

Real-Anime-Z部署案例:Z-Image底座+LoRA融合全流程详解(含safetensors加载)

Real-Anime-Z部署案例&#xff1a;Z-Image底座LoRA融合全流程详解&#xff08;含safetensors加载&#xff09; 1. 项目概述 Real-Anime-Z是一款基于Stable Diffusion技术的写实向动漫风格大模型&#xff0c;采用独特的2.5D风格设计&#xff0c;在保留真实质感的同时强化动漫美…...

绩效谈判技巧:如何让老板为你的技术价值买单

在软件研发的生态中&#xff0c;测试工程师的角色常常处于一种微妙的“价值隐形”状态。开发构建功能&#xff0c;运维保障稳定&#xff0c;而测试——在许多管理者眼中——似乎只是流程中一个“找问题”的环节&#xff0c;其价值容易被量化为发现的缺陷数量&#xff0c;却难以…...

告别Vivado卡顿:用Docker+Jupyter在Ubuntu 18.04上丝滑搭建FINN开发环境(保姆级避坑指南)

告别Vivado卡顿&#xff1a;用DockerJupyter在Ubuntu 18.04上丝滑搭建FINN开发环境 在FPGA加速神经网络推理领域&#xff0c;FINN框架因其高效的量化神经网络处理能力而备受关注。然而&#xff0c;许多开发者在初次接触FINN时&#xff0c;往往会被复杂的开发环境搭建过程劝退—…...

哪些独立站外链策略最有效? 每天多拿50个询盘的绝招

外链&#xff08;Backlinks&#xff09;不是单纯的代码堆砌&#xff0c;它在谷歌算法里占据了约30%以上的权重排名信号。想要把每天的询盘量从个位数提升到50个以上&#xff0c;不能靠那种5美金买1000条的垃圾链接。那些链接只会让网站在48小时内被封禁。真实的增长来自于同行没…...

VisionMaster多相机定位实战:手把手教你搞定800mm大物料抓取(附完整标定流程)

VisionMaster多相机定位实战&#xff1a;800mm大物料抓取全流程解析 在工业自动化领域&#xff0c;大尺寸物料的高精度定位一直是视觉工程师面临的棘手挑战。当物料尺寸超过单相机视野范围时&#xff0c;如何实现毫米级定位精度&#xff1f;本文将基于800600mm面板物料抓取场景…...