实验9通过串口命令控制led亮灭_第1页
实验9通过串口命令控制led亮灭_第2页
实验9通过串口命令控制led亮灭_第3页
实验9通过串口命令控制led亮灭_第4页
实验9通过串口命令控制led亮灭_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、无锡谷雨电子实验九通过串口控制 LED 亮灭实验2014/1/27在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。目录前言2必要条件2原理图2编程参考2源码分析66 编译调试97 使用 Flash Programmer程序1411 前言通过串口输入控制命令,控制 LED。2 必要条件A 硬件1、 SmartRF 系列开发板,CC2530 或者 CC2531 2、 CC-Debugger 仿真器B1、 IAR for 8051 开发环境,版本:8.102、 Flash Programmer 固件烧写3、 串口调试助手。3 原理图P0.2

2、 是 CC254x UART 的 Rx 接收信号,P0.3 是 CC254x CTS 和RTS,当开启 flowcontrol 流控制时需要改硬件。UART 的 Tx 发射信号,另外还有4 编程参考相关寄存器 UxCSR、UxCSR、UxGCR、UxBUF、UxBAUD、CLKCONCMD、CLKCONSTA 如下表所示234波特率计算公式如下:这里使用常见的 115200 波特率。配置 UART 一般步骤如下:1、 配置 IO 端口为外设(非GPIO)2、 配置 UART 相关寄存器及波特率。宏定义函数 BV()。#define BV(x)1x;/将 1每个位。x 位,这样可以非常方便而且非

3、常清晰的控制寄存器的/ P1.0 定义为输出P1DIR |= BV(0);P1SEL &= BV(0);/ P1.0 定义为一般GPIO5P0SEL |= BV(2) | BV(3);/配置 P0.2 和 P0.3 为外设,非 GPIOU0CSR |= BV(7); /配置当前为 UART,非 SPIU0GCR |= 11; /根据上述波特率设置表格设置 115200 波特率 U0BAUD |= 216;/ 根据上述波特率设置表格设置 115200 波特率 UTX0IF = 0;/位寄存器,直接操作,清除中断标志除此之外还需要设置串口接收的相关寄存器。U0CSR |= BV(6);/允许接收数

4、据 IEN0 |= BV(2);/打开接收中断 EA=1;/打开总中断5 源码分析打开实验 7 按键实验uart 工程(双击 uart.eww 打开)#include /CC2531 也可以使用该头文件/Ghostyu SmartRF 开发板实验/串口收发验,波特率 115200,8N1.通过串口命令控制 LED 亮灭/技术支持:/无锡谷雨电子typedef unsigned char u8;typedef char8;typedef unsigned shortu16;/定义 P1.0 口为 LED1 控制端/定义 P1.1 口为 LED2 控制端/定义 P1.4 口为 LED3 控制端#d

5、efine LED1 P1_0#define LED2 P1_1 #define LED3 P1_4/*常用宏定义*/#define BV(x) (1(x)/*名称: DelayMS()功能: 毫秒延时,系统时钟不配置时默认使用16M,本 demo 中,时钟为外部 32M参数: msec 延时参数,注意,最大数值为 65536ms出口参数: 无6*/void DelayMS(u16 msec)u16 i,j;for (i=0; imsec; i+)for (j=0; j536*2; j+);/*名称: LedSet()功能: 点亮或熄灭所有 LED 灯参数: m 为 0 时 LED 灯亮 m

6、为 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(1) | BV(4);/ P1.0,P1.1,P1.4 定义为一般GPIO/只有初始化过GPIO 后,对 GPIO 的操作才会生效/使所有 LED 灯默认为熄灭状态LedSet(0);/

7、*名称: InitUart()功能:参数:出口参数:串口初始化函数无无*/void InitUart(void)7P0SEL |= BV(2) | BV(3);/配置 P0.2 和 P0.3 为外设,非GPIOU0CSR |= BV(7); /配置当前为 UART,非 SPIU0GCR |= 11; /根据上述波特率设置表格设置 115200 波特率 U0BAUD |= 216;/ 根据上述波特率设置表格设置 115200 波特率 UTX0IF = 0;/位寄存器,直接操作,清除中断标志U0CSR |= BV(6);/允许接收数据 IEN0 |= BV(2);/打开接收中断 EA=1;/打开总

8、中断/*名称: UardString()功能: 串口发送函数参数: Data:发送缓冲区出口参数: 无len:发送长度*/void UardString(8 *Data, u16 len)u16 i;for(i=0; ilen; i+)U0DBUF = *Data+; while(UTX0IF = 0);UTX0IF = 0;/*名称: UardByte()功能: 串口发送函数参数: byte,带发送的数据出口参数: 无*/void UardByte(8 byte)U0DBUF = byte;while(UTX0IF = 0);UTX0IF = 0;/*8名描称: UART0_ISR(void

9、) 串口中断处理函数述: 当串口 0 产生接收中断,将收到的数据保存在 RxBuf 中,每次接收一个字节*/#pragma vector = URX0_VECTOR errupt void UART0_ISR(void)/ 清中断标志URX0IF = 0;if(U0DBUF=A)/点亮 LED1 LED1=1;else if(U0DBUF=D)/熄灭 LED1 LED1=0;if(U0DBUF=B)/点亮 LED2 LED2=1;else if(U0DBUF=E)/熄灭 LED2 LED2=0;if(U0DBUF=C)/点亮 LED3 LED3=1;else if(U0DBUF=F)/熄灭 L

10、ED3 LED3=0;UardByte(U0DBUF); /收到后立即发送出去void main(void)CLKCONCMD &= 0 x40;while(CLKCONSTA & 0 x40); CLKCONCMD &= 0 x47;/设置系统时钟源为 32MHZ 晶振/等待晶振稳定/设置系统主时钟频率为 32MHZInitLed();InitUart();/调置串口相关寄存器while(1)6 编译调试根据实验 1 中的方法调试程序,若有语法错误,根据提示修改语句。每隔 1 秒,led1 翻转一次。并且向串口输出”o Ghostyu”.9第一次使用 New SmartRF 串口时,需要安装

11、CH340G USB 转 UART 的驱动程序。请将提供的mini-usb 线插到 New SmartRF 开发板左边的 MINI-USB 座中,然后将波动开关拨到 usb 线一次,如下图:一旦当你把 NewSmartRF 开发板通过 usb 转串口的miniusb 连接到 PC 上,windows 会提示发现新硬件,要求安装开发板上的 USB 转串口 CH340G 驱动程序,如果 windows 从未安装过 ch340 的驱动,会出现如下图:2.2.1 安装串口转 USB 驱动(CH340G)驱动程序位于/Software/Software串口USB 转串口驱动,如下图安装的带有数字签名的驱

12、动程序 ch341.zip,解压后,运行 setup.exe,点击安装,大概 10 秒后安装成功。10安装成功后,退出驱动安装程序。这时,拔掉刚才已经连接的 NewSmartRF 开发板,然后重新连接。或者使用关闭 NewSmartRF 电源开关,重新打开。打开设备管理器,查看刚才安装的设备驱动。(如何打开设备管理器请)假如未能安装成功,或者有黄色的感叹号,请右击改设备,选择更新驱动程序。在出现的框中选择“浏览计算机以查找驱动程序”11然后定位到驱动程序所在目录,然后单击下一步。直到安装成功。12驱动安装成功后就可以使用开发板的 usb 转 uart 功能了驱动安装 OK 后,打开串口调试助手

温馨提示

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

评论

0/150

提交评论