PIC 单片机烧写程序时提示Fuse error 0x2007错误

发布者:innovation2最新更新时间:2016-09-26 来源: eefocus关键字:PIC  单片机  烧写程序  error 手机看文章 扫描二维码
随时随地手机看文章
今天在PIC 单片机烧写程序时提示Fuse error 0x2007
该错误的原因主要是因为配置位的错误
PIC 单片机烧写程序时提示Fuse error 0x2007错误 -  ╄→风、吹不散 - ╄→风、吹不散
 
没有详细的去研究,大概做个判断 一应该是编译器或者编程软件的错误,有两个位不能读出来,也可能是置代码保护的原因。
当把代码保护的配置位关闭后,该错误消失。
所以目前的解决方法是:在code中关闭代码保护功能。
 
//********************************************知识补充***********************************************//
在PIC系列单片机里,其芯片内部大都有设置一个特殊的程序存储单元,地址为2007,由单片机的用户自由配置,用来定义一些单片机功能电路单元的性能选项。我们把这个单元叫做器件配置字(Configuration Bits)。这种设计给单片机开发工程师带来了很大的灵活性,但是也给初学者带来了一些麻烦。
 
在编译器里怎么样对配置位编程
PIC单片机正常运行时,是无法对配置位进行存取的,只能在编程模式下存取。可以通过对配置位编程( 读为”0”) 或不编程( 读为”1”) 来选择不同的器件配置。对配置位编程后,是否能够更改其设置取决于器件的存储工艺和封装形式。对于只读存储器(ROM) 器件,这些配置位在ROM 代码提交时即被确定,且一旦器件掩膜完成,即无法更改( 若要更改,则需新的掩膜代码)。对一次可编程 (OTP) 器件,一旦这些位被编程 ( 为”0”),就无法更改了,而FLASH的单片机在每次编程下载的时候是可以更改的。 
编译器一般都可以采用菜单方式设置,在编译程序时将设置字一并完成,烧写芯片同时完成CONFIG的烧入。用PIC官方编译工具MPLAB IDE7.30设在编译器里对配置位编程 。点击菜单栏Configure下的Configuration Bits出现的对话框)。设置的时候直接点击相应Setting下面菜单会出现下拉菜单
 
然而,这样设置后,有的编译器编译的HEX文件并不包含CONFIG,因此,在程序代码中直接包含CONFIG设置是一种好习惯(这样编译的HEX就会包含CONFIG设置)。 
下面是在MPLAB IDE7.30汇编语言设置配置位的情形: 
 __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & 
_MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT   注意:CONFIG前面是2个下划线“_”,中间没有空格,而且不能在行的第一列位置,至少空一格。项目的定义可以在头文件中找到(*.inc)。每种芯片具体设置不完全一样。 
下面是在PICC的C语言编译器配置位的设置情形 
__CONFIG(INTIO & WDTDIS & MCLRDIS & BORDIS & UNPROTECT & PWRTEN);项目的定义可以在头文件中可以在安装PICC文件下的include文件夹找到。要注意,在语句的最后要加上“;”,定义的内容还要用括号括起来。 
上面是CONFIG的一种写法,它的好处就是意义比较明显,如汇编的WDT_OFF和C语言的WDTDIS都是不使用PIC单片机看门狗的意思。  
   如果你对如何采用上述方法设置CONFIG还是觉得麻烦,还有一个好方法:在开发工具软件(比如MPLAB-IDE)的CONFIG设置菜单里先选择好项目,确认设置正确。这时会有一个定义字(16进制,随着设置不同而改变),在图2的VALUE的下面,复制后,再粘贴到__CONFIG后,比如:汇编代码可以这样写“__CONFIG 3FFFH”,至于C语言可以这样“__CONFIG (0x3FFF);”。 
 
在编程器下载软件里设置
一般的编程器都会有配置位的选项,根据需要进行选择。
//********************************************知识补充***********************************************//
 
由于以上原因,编译器设置位可能会失效,所以在代码中写配置位是一种好习惯。由于又想配置代码保护功能,
故对于可批量的程序,可以采用修改hex文件实现(就不用在code中写配置位,直接编程器中配置好了保存hex后批量写入)。
如果每个程序都需要修改的话,就不能每一个每一个的修改hex了。就需要在code中配置,例如__CONFIG (0x3FFF);
烧写的时候就仅需要配置一个代码保护就可以了。没有以前那么多的配置信息,方便了许多。

关键字:PIC  单片机  烧写程序  error 引用地址:PIC 单片机烧写程序时提示Fuse error 0x2007错误

上一篇:PIC16F877A单片机-AD转换经典C程序
下一篇:PIC单片机CCS之C语言(#BYTE的用法)

推荐阅读最新更新时间:2024-03-16 15:12

意法半导体微控制器STM32H5 探索套件加快安全、智能、互联设备开发
首款支持Secure Manager的开发套件,一个集成ST认证和维护的核心安全服务的系统芯片总包方案 2023年9月19日 ,中国 -意法半导体发布了一款功能丰富的STM32H5微控制器(MCU)开发板 。STM32H5微控制器是开发高性能数据处理和高级安全应用的理想选择,适合开发各种应用,例如,智能传感器、智能家电、工业控制器、网络设备、个人电子产品和医疗设备。 STM32H573I-DK探索套件让开发人员能够探索STM32H5集成的全部功能,例如,模拟外设、定时器、ST ART(自适应实时)加速器™、媒体接口和数学加速器,方便开发者评估工业可编程逻辑控制器(PLC)、电机驱动器,以及空调、冰箱和洗衣机等家电的智
[单片机]
意法半导体<font color='red'>微控制器</font>STM32H5 探索套件加快安全、智能、互联设备开发
51单片机定时器程序超简单实现数码管24小时时钟显示
用74hc573实现数码管24小时时钟显示,对于74hc573芯片如果不了解可以看看文件里面的手册,不多说先上代码 /*以下程序是根据74hc573芯片的锁存器 **原理来写的 **若有不懂的地方可以看看文件夹的芯片 **手册或者百度*/ #include reg52.h typedef unsigned char u8; typedef unsigned int u16; //串口定义没什么好说的 sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; u8 code mabiao ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
[单片机]
51<font color='red'>单片机</font>定时器<font color='red'>程序</font>超简单实现数码管24小时时钟显示
单片机rs232串口通信完美解析
在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错(如有兴趣可以查看http://www.cdle.net网站中的相关资料)。下图就是MAX232的基本接线图。 图7-1 MAX232   在上两课的电路的基础上按图7-3加上MAX232就可以了。P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。
[单片机]
<font color='red'>单片机</font>rs232串口通信完美解析
基于AVR单片机的无线电遥测系统
   一、引言   基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。   分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。    二、设计思想   原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使系统其他所
[单片机]
MSP430单片机的时钟系统介绍
这3个振荡器分别为: (1)DCO 数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO的调节功能可以改善它的性能,他的调节分为以下3步:a:选择BCSCTL1.RSELx确定时钟的标称频率;b:选择DCOCTL.DCOx在标称频率基础上分段粗调;c:选择DCOCTL.MODx的值进行细调。 (2)LFXT1 接低频振荡器。典型为接32768HZ的时钟振荡器,此时振荡器不需要接负载电容。也可以接450KHZ~8MHZ的标准晶体振荡器,此时需要接负载电容。 (3)XT2 接450KHZ~8MHZ的标准晶体振荡器。此时需要
[单片机]
ADVFC32与51系列单片机的硬件接口电路
ADVFC32与51系列单片机的硬件接口电路如图1所示。图中是输入电压信号为正时的情况。在输入信号为负时,只要把电阻R1、R3接地,从第14脚直接输入即可。AD650的电路与ADVFC32的外电路相似。关于这两种芯片的引脚排列及内部结构等请参考有关手册。      由图1可见,接口电路非常简单,只要把V/F变换器输出的频率信号直接送到单片机8031的定时器1的计数输入端T即可。其设计思想为:从传感器来的mV级电压信号经运算放大器放大到0~10 V的电压后,加到ADVFC32的输入端,从频率输出端,OUT输出的频率信号加到单片机8031定时器1的计数输入端Tl上。在单片机内部由定时器作计数器时,由定时器1对输入脉冲计数。定时器O的
[单片机]
ADVFC32与51系列<font color='red'>单片机</font>的硬件接口电路
分时操作系统思想在单片机编程中的实现
摘要:提出基于分时系统思想的单片机系统设计方案,给出一具体应用的实例以及详细的实现方法。 关键词:分时操作系统 单片机系统 作业调度 指针 前言   作为嵌入式系统主控单元——单片机,其软件往往是一个微观的实时操作系统,且大部分是为某种应用而专门设计的。系统程序有实时过程控制或实时信息处理的能力,要求能够及时响应随机发生的外部事件并对该事件做出快速处理。而分时操作系统却是把CPU的时间划分成长短基本相同的时间区间,即“时间片”,通过操作系统的管理,把这些时间片依次轮流地分配给各个用户使用。如果某个作业在时间片结束之前,整个任务还没有完成,那么该作业就被暂停下来,放弃CPU,等待下一轮循环再继续做。此时CPU又分配给另一个作
[单片机]
微控制器的FSMC到底是咋回事?(下)
摘要:上一篇文章我们具体讲解了FSMC的原理配置,这一章主要是关于使用FSMC的SRAM初始化流程,以及使用STM32CubeMX对FSMC进行配置。 一、SRAM初始化流程 通过上面的讲解,通过对 FSMC 相关的寄存器的描述,大家对 FSMC 的原理有了一个初步的认识,如果还不熟悉的朋友,请一定要搜索网络资料理解FSMC的原理。只有理解了原理,使用库函数才可以得心应手。那么在库函数中是怎么实现FSMC的配置的呢?FSMC_BCRx,FSMC_BTRx 寄存器在库函数是通过什么函数来配置的呢?下面我们来讲解一下 FSMC 相关的库函数: 1.1 使能FSMC时钟 要使用FSMC,当然首先得开启其时钟。然后需要把
[单片机]
<font color='red'>微控制器</font>的FSMC到底是咋回事?(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved