1初级cc253x基础教程实验2跑马灯_第1页
1初级cc253x基础教程实验2跑马灯_第2页
1初级cc253x基础教程实验2跑马灯_第3页
1初级cc253x基础教程实验2跑马灯_第4页
1初级cc253x基础教程实验2跑马灯_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、无锡谷雨电子实验二跑马灯实验:控制多个 GPIO2014/1/27在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。目录前言2必要条件2原理图2编程参考2源码分析36 编译调试77 使用 Flash Programmer程序101 前言在实验 1 基础上,学习控制多个GPIO,驱动 LED,直观的观察实验现象2 必要条件A 硬件1、 SmartRF 系列开发板,CC2530 或者 CC25312、 CC-Debugger 仿真器B1、 IAR for 8051 开发环境,版本:8.102、 Flash Programmer 固件烧写。3

2、 原理图当 P1.0当 P1.1当 P1.4是 LED1 亮,低电平是 LED1 灭;是 LED2 亮,低电平是 LED2 灭;是 LED3 亮,低电平是 LED3 灭;4 编程参考和一般的单片机一样,控制 GPIO,需要配置 GPIO 相关的寄存器,完整册,请参:目录下的 CC253x4x User Guide. (Rev. C).pdf,对应的中文手册: CC2530CC254xEK的中文手册。这一节,引入一个宏定义函数 BV()。#define BV(x)1x;/将 1每个位。x 位,这样可以非常方便而且非常清晰的控制寄存器的P1DIR |=BV(0) | BV(1) | BV(4);

3、/P1.0,P1.1,P1.4 定义为输出口P1SEL &= ( BV(0) | BV(1) | BV(4);/ P1.0,P1.1,P1.4 定义为一般GPIO注意上面的表格,每个寄存器中都有一个默认值,上面表格中 Reset 就是寄存器的默认值。TIPS:在协议栈中,用到了非常多的宏定义函数,宏定义不但能保持代码简介,而且代码更容易,建议大家在编码过程中多使用效率高的宏定义。5 源码分析打开实验 2 跑马灯实验Led 工程(双击 Led.eww 打开)#include /CC2531 也可以使用该头文件/Ghostyu SmartRF 开发板实验/跑马灯实验/技术支持:/无锡谷雨电子typ

4、edef unsigned char u8;typedef unsigned shortu16;/定义 P1.0 口为 LED1 控制端/定义 P1.1 口为 LED2 控制端/定义 P1.4 口为 LED3 控制端#define LED1 P1_0#define LED2 P1_1 #define LED3 P1_4/*常用宏定义*/ #define BV(x) (1(x)/*名称: DelayMS()功能: 毫秒延时,系统时钟不配置时默认使用16M参数: msec 延时参数,注意,最大数值为 65536ms出口参数: 无*/ void DelayMS(u16 msec)u16 i,j;fo

5、r (i=0; imsec; i+)for (j=0; j536; j+);/*名称: LedSet()功能: 点亮或熄灭所有 LED 灯参数: m 为 0 时 LED 灯亮 m 为 1 时 LED 灯灭出口参数: 无*/ void LedSet(u8 m)LED1 = m; LED2 = m; LED3 = m;/*名功称: InitLed()能: 设置 LED 灯相应的 IO 口参数: 无出口参数: 无*/ void InitLed(void)P1DIR |=BV(0) | BV(1) | BV(4); /P1.0,P1.1,P1.4 定义为输出口P1SEL &= ( BV(0) | BV

6、(1) | BV(4);/ P1.0,P1.1,P1.4 定义为一般GPIO/只有初始化过 GPIO 后,对 GPIO 的操作才会生效/使所有 LED 灯默认为熄灭状态LedSet(0);void main(void)u8 i;/设置 LED 灯相关 IO 口InitLed();while(1)LED1 = !LED1;DelayMS(200); LED2 = !LED2;DelayMS(200); LED3 = !LED3;DelayMS(200);/流水灯,初始化时 LED 为熄灭执行后则点亮/与上述过程相反LED3 = !LED3;DelayMS(200); LED2 = !LED2;D

7、elayMS(200); LED1 = !LED1;DelayMS(200);for (i=0; i3; i+)/所有灯闪烁 3 次LedSet(0);/关闭所有 LED 灯DelayMS(200);LedSet(1);/打开所有 LED 灯DelayMS(200);/使所有 LED 灯熄灭状态LedSet(0);DelayMS(500);6 编译调试注意,如果编译出现如下错误:Error:Copy protection check,No valid license found for this product24表明 IAR 未成功。如果编译成功,就可以到开发板中运行了。如下截图,如果中途出

8、现了错误,多数是仿真器未成功连接开发板(连接后按仿真器复位,CC-Debugger 指示灯会变成绿色,表示已识别开发板),或者是仿真器驱动没有安装好(到设备管理器了更新驱动)TIPS:如果 CC-Debugger 指示灯已经变绿,但还程序出错,这多数是由于仿真器固件受损,需要重新恢复一下固件,参考 CC-Debugger 手册。在调试的过程中,大家可以设置断点,然后观察某个变量或者寄存器的值,都比较方便。如何设置断点?将光标停留在想要的语句处,然后点击如下图红圈:,或者在语句的左边的灰域双击。全速运行到断点处停止运行,这时就可以查看当前的运行状态,例如变量值,寄存器状态等。如何观察变量?如下图

9、,右击选中的变量。Add to Watch 即可。全速运行后,可以看到开发板 LED13 轮流点亮的现象。以上就是跑马灯工程的简单调试。在 机程序的开发过程中,单步调试是非常有效的排,但是在后面的协议栈开发过程中,大多数情况下就不能单步调试了,一旦中断运行,错就会断开无线连接。7 使用 Flash Programmer程序在之前,快速的将程序均使用 IAR 来编写调试程序,但很多情况下,不需要调试,需要到开发板中,然后观察现象,这时,就需要 Flash Programmer 烧写工具。使用 Flash Programmer 烧写,需要 IAR 工程设置产生HEX 文件。那么如何配置 IAR 产

10、生 HEX 文件呢?打开工程 Options1、 如下图:框。两种方式打开2、 如下图:打开 Options框如下图,在左边选择 Linker,然后右边选择 ExtraOutput 选项卡,输入对应的名称.hex 即可。在使用 Flash Programmer 之前,需要安装。在的 Software/TI/SmartRF_Flash_Programmer 目录有该程序的安装文件,大家也可以到 TI 官网,为:/tool/flash-programmer安装之后,会在桌面生成一个快捷,或者在开始菜单里找到它,打开。如下图步骤设置,注意步骤 3 中,IAR 工程产生的 HEX 文件位于 IAR 的工程目录内,一般如下述结构:LedDebugExeLED 是 IAR 工程名。Debug,是 IAR 工程的配置名称,一个 IAR 工程可以包括多个配置,例如 Debug 和Release。或者其他用户自定的配置。 Exe,编译后产生的可执行文件所在目录。另外注意步骤 4,常用的是前三个选项,一般使用第二个,快速。Erase,擦除整个。Erase and Program,先擦除,然后烧写。Erase,Program,Verify,先猜出,然后烧写,最后验证烧写的文件是否正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论