【CC2530】用ccdebugger仿真器向zigbee烧写文件时,输出异常: Fatal error: Unknown exception in driver (#E1 解决方法

当我们在IAR中,写完c语言代码时运行编译通过,但向板子烧写程序时出现了一下报错信息时:

Note:A target cannot be selected when used in anthoer debug session or in other applications.

Waring:No target selected,session aborted.

Fatal error : Unknown exception in driver(#E1) Session aborted!

A fatal error has occurred The debugger will terminate.

造成报错的原因有一下三种:

1. 仿真器接触不良

2. 烧写前没有按仿真器重置(Reset)按钮

3. 没有安装仿真器驱动

对应解决方法

1.  仿真器接触不良

        检查仿真器连接电脑、模块的接口是否插紧,检查过后再次进行烧写操作。

2.烧写前没有按仿真器重置(Reset)按钮

        在仿真器中间有一个黑色盒子,将盒子拿正(以英文字母为参照物),偏左下角的位置有一个按钮写着Reset,长按2后再次进行烧写。

3. 没有安装仿真器驱动

        首先需要检查一下,仿真器驱动是否安装。先将仿真器连接到电脑,然后右击【开始】(左下角win)点击【设备管理器】,进入【设备管理器】查看【其他设备】 

看看ccdebugger的驱动是否带一个三角感叹号。

鼠标右击,点击更新驱动 程序

点击浏览我的电脑以查找驱动程序

 C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Drivers\Cebal\win_64bit_x64

输入路径,路径一定要和图中的一样。

点击下一页,等待驱动更新,完成。

再进行一次烧写操作。

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
CC2430 的应用开发中,定器中断是非常常用的一个功能。下面我们将介绍几个关于定器中断的基础实验。 ## 实验一:定器中断实验 ### 实验目的 了解 CC2430 的定器模块,并掌握其中断的使用方法。 ### 实验原理 CC2430 的定器模块有三个定器:T1、T2 和 T3。其中,T1 和 T2 是 16 位的定器,T3 是 8 位的定器。在本实验中,我们将以 T1 定器为例,介绍定器中断的使用方法。 T1 定器的计数器是一个 16 位的寄存器,它可以通过以下寄存器进行配置: - T1CC0H/T1CC0L:T1 的比较器 0,可以用来产生比较中断。 - T1CC1H/T1CC1L:T1 的比较器 1,可以用来产生比较中断。 - T1CC2H/T1CC2L:T1 的比较器 2,可以用来产生比较中断。 - T1IE:T1 中断使能寄存器,用来使能 T1 的中断。 - T1CTL:T1 控制寄存器,用来配置 T1 的计数模式、钟源等参数。 在本实验中,我们将使用 T1 的比较器 0,配置为每隔 1 秒钟产生一次中断。 ### 实验步骤 1. 配置 T1 的计数模式、钟源等参数。 ```c T1CTL |= 0x0C; // T1 计数模式为比较器模式 T1CTL &= ~0x03; // T1 钟源为钟源选择寄存器 CLKCON 的 CLKSPD 位所选择的钟源 T1CTL &= ~0x30; // T1 比较器模式为单次比较模式 ``` 2. 配置 T1 的比较器 0。 ```c T1CC0L = 0x00; // T1 的比较器 0 的低 8 位 T1CC0H = 0x80; // T1 的比较器 0 的高 8 位 ``` 3. 使能 T1 的中断。 ```c T1IE = 1; // 使能 T1 的中断 ``` 4. 在主函数中进入循环,等待定器中断的触发。 ```c while(1); ``` 5. 在定器中断服务函数中处理中断事件。 ```c #pragma vector = T1_VECTOR __interrupt void T1_ISR(void) { T1IF = 0; // 清除 T1 中断标志 // 中断处理代码 } ``` ### 实验结果 当程序运行后,每隔 1 秒钟会触发一次定器中断。在中断服务函数中可以添加相应的处理代码,实现定器中断的功能。 ## 实验二:定器中断实现 LED 闪烁 ### 实验目的 通过定器中断实现 LED 的闪烁。 ### 实验原理 在上一个实验中,我们已经学习了如何使用定器中断。在本实验中,我们将以 T1 定器为例,通过定器中断实现 LED 的闪烁。 在本实验中,我们将使用 P0.0 引脚控制 LED 的状态。LED 亮,P0.0 输出低电平;LED 灭,P0.0 输出高电平。我们可以通过改变 P0.0 引脚的电平状态,实现 LED 的闪烁。 ### 实验步骤 1. 配置 P0.0 引脚为输出模式。 ```c P0SEL &= ~0x01; // P0.0 引脚配置为 GPIO 模式 P0DIR |= 0x01; // P0.0 引脚配置为输出模式 ``` 2. 配置 T1 的计数模式、钟源等参数。 ```c T1CTL |= 0x0C; // T1 计数模式为比较器模式 T1CTL &= ~0x03; // T1 钟源为钟源选择寄存器 CLKCON 的 CLKSPD 位所选择的钟源 T1CTL &= ~0x30; // T1 比较器模式为单次比较模式 ``` 3. 配置 T1 的比较器 0。 ```c T1CC0L = 0x00; // T1 的比较器 0 的低 8 位 T1CC0H = 0x80; // T1 的比较器 0 的高 8 位 ``` 4. 使能 T1 的中断。 ```c T1IE = 1; // 使能 T1 的中断 ``` 5. 在定器中断服务函数中处理中断事件,改变 P0.0 引脚的电平状态。 ```c #pragma vector = T1_VECTOR __interrupt void T1_ISR(void) { T1IF = 0; // 清除 T1 中断标志 P0_0 = ~P0_0; // P0.0 引脚电平状态取反 } ``` 6. 在主函数中进入循环,等待定器中断的触发。 ```c while(1); ``` ### 实验结果 当程序运行后,LED 会以 1 秒钟的频率闪烁。如果需要改变 LED 闪烁的频率,可以通过修改 T1 的比较器 0 的值来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈苏程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值