cc2530设计性实验代码六
主函数
#include <ioCC2530.h>
#include "LCD_12864_Driver.h"
#include <string.h>
#define LED1 P1_0
#define LED2 P1_1
#define ON 1
#define OFF 0
#define uint unsigned int
#define uchar unsigned char
#define UART0_RX 1
#define UART0_TX 2
#define SIZE 51
#define slave_nodeenum SYSCLK_SRC{XOSC_32MHz,RC_16MHz};
#define UART0_RX 1
#define UART0_TX 2
#define SIZE 51char RxBuf;
char UartState;
uchar count;
char RxData[SIZE]; //存储发送字符串
void Delay(uint n)
{uint t;for(t = 0;t<n;t++);for(t = 0;t<n;t++);for(t = 0;t<n;t++);for(t = 0;t<n;t++);for(t = 0;t<n;t++);
}
void InitLed(void)
{P1SEL &= ~0x03;// 设置 普通IO口P1DIR |= 0x03;// 设置 输出 LED1 = OFF;LED2 = OFF;
}
/****************************************************************
*函数功能 :初始化串口0
*入口参数 :无
*返 回 值 :无
*说 明 :38400-8-n-1
****************************************************************/
void initUART0(void)
{PERCFG &= ~0x01;// P0SEL |= 0x3c;P2DIR &= ~0XC0;U0CSR |= 0x80;//1为UART模式U0CSR |= 0x40; //允许接收 U0GCR |= 10;//设置BAUD_E=1U0BAUD |= 59;//设置BAUD_M=59UTX0IF = 0;IEN0 |= 0x84; //开总中断允许接收中断
}/****************************************************************
*函数功能:串口发送字符串函数
*入口参数:data:数据
* len :数据长度
*返 回 值:无
*说 明:
****************************************************************/
void UartSendString(char *Data,int len)
{int j;for(j=0;j<len;j++){U0DBUF = *Data++;while(UTX0IF == 0); UTX0IF = 0;}
}
void BlinkLeds(uchar LEDx)
{ if(LEDx == 1){LED1 = !LED1;Delay(20000);}else if(LEDx == 2){LED2 = !LED2;Delay(20000);}
}
void SystemClockSourceSelect(enum SYSCLK_SRC source)
{ unsigned char osc32k_bm = CLKCONCMD & 0x80; unsigned char __clkconcmd,__clkconsta; if(source == RC_16MHz) CLKCONCMD = ((osc32k_bm) | \(0x01 << 6)| \(0x01 << 3)| \(0x01 << 0)); else if(source == XOSC_32MHz) { CLKCONCMD = (osc32k_bm); } __clkconcmd = CLKCONCMD;do { __clkconsta = CLKCONSTA;}while(__clkconsta != __clkconcmd);
}void main(void)
{ SystemClockSourceSelect(XOSC_32MHz);char str1 = '\n';initUART0(); //调用串口初始化函数 UartState = UART0_RX; //串口0默认处于接收模式memset(RxData, 0, SIZE);InitLed();vLcdInit();while(1){if(UartState == UART0_RX) //接收状态 { if(RxBuf != 0) { if((RxBuf != '#')&&(count < 50))//以'#'为结束符,一次最多接收50个字符 RxData[count++] = RxBuf; else{if(count >= 50) //判断数据合法性,防止溢出{count = 0; //计数清0memset(RxData, 0, SIZE);//清空接收缓冲区}elseUartState = UART0_TX; //进入发送状态 }RxBuf = 0;}}if(UartState == UART0_TX) //发送状态 {vLcdInit();vLcdTextWrite(1,1,RxData);vLcdRefresh();strcat(RxData, &str1);U0CSR &= ~0x40; //禁止接收 UartSendString(RxData, count+1); //发送已记录的字符串。U0CSR |= 0x40; //允许接收 UartState = UART0_RX; //恢复到接收状态 count = 0; //计数清0memset(RxData, 0, SIZE); //清空接收缓冲区} }
}#pragma vector=URX0_VECTOR
__interrupt void UART0_ISR(void)
{URX0IF = 0; // 清中断标志 RxBuf=U0DBUF;
}
完整代码下载
cc2530设计性实验代码六相关推荐
- 用C语言编程实现矩形波信号,信号与系统综合设计性实验
信号与系统综合设计性实验 傅立叶变换性质 实验设备 硬件 电脑软件 MATLAB 实验目的 掌握MATLAB的基本使用方法 掌握MATLAB环境下信号表示及产生方法 掌握MATLAB环境下傅立叶变换方 ...
- 文学研究助手(设计性实验)
文学研究助手(设计性实验) 1. 需求分析 需求: 英文小说存于一个文本文件中.待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成.程序的输出结果是每个词的出现次数和出现位置 ...
- 计算机组成原理设计性实验,《计算机组成原理》设计性实验报告.doc
<计算机组成原理>设计性实验报告 华北科技学院计算机学院设计性实验 实 验 报 告 课程名称 计算机组成原理B 实验学期 2013 至 2014 学年 第 一 学期 学生所在院部 计算机学 ...
- 大物设计性实验:电容、电感量的测量
这是最后一次大物实验,仅以此文作为纪念. 下面是华南某大学的设计性实验: 一. 实验内容和要求 1.根据实验室所提供的仪器拟定测量电容量.电感量的实验电路.各构思3种以上的测量方法,写出实验步骤及运算 ...
- 【操作系统】内存管理设计性实验报告
操作系统#内存管理设计性实验报告 正文 一. 实验目的 1.通过本次试验体会操作系统中内存的分配模式: 2.掌握内存分配的方法(首次适应(FF),最佳适应(BF),最差适应(WF)): 3.学会进程的 ...
- JAVA第二次验证设计性实验报告
[实验任务一]:素数输出 (3)实验报告中要求包括程序设计思想.程序流程图.源代码.运行结果截图.编译错误分析等内容. 1. 实验内容 (1)计算并输出3~100之间的素数. (2)编程满足下列要 ...
- 大物实验计算弹性模量_大学物理设计性实验用拉伸法测定金属丝的杨氏弹性模量...
教学章节:实验7 用拉伸法测定金属丝的杨氏弹性模量 教学内容:1.讲述"用拉伸法测定金属丝的杨氏弹性模量"实验的实验原理 2.介绍实验的操作要领.数据处理等 3.指导学生进行实验操 ...
- 设计性实验-循环结构:搬砖问题。36块砖,36人搬;男搬4,女搬3,两个小孩抬一砖。要求一次全搬完,问男、女、小孩各需若干?
#include<stdio.h> int main() {int x,y,z; //定义循环变量for (x=0; x<36; x++){for (y= 0; y<36; y ...
- 第二次网页设计实验报告(设计性实验)(表格+表单)
第一个: <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8& ...
- 数字电路实验六:同步模4可逆计数器设计预实验报告
实验六:同步模4可逆计数器设计(综合设计性实验) -----用D触发器74HC74和74HC86设计制作一个模4可逆计数器 预习要点: 要求:实现以4为模的递增计数以及递减计数功能,(当X=0时,减1 ...
最新文章
- Google提出新型学习范式「Deep Memory」,或将彻底改变机器学习领域
- 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
- 机器学习笔记 时间序列预测(基本数据处理,Box-Cox)
- java dart 官司_Dart和Java的区别
- 找出100以内内被7整除的数,每行显示7个,然后换行显示
- lol最强最高输出的adc_LOL:官方公布ADC的输出能力,最强最弱都是谁?德莱文不是最高的...
- 阴阳师服务器维修拖延,阴阳师12月11日更新维护公告 阴阳师百闻牌联动开启
- 未来,语音识别可能应用于哪些商业化场景?
- tensorflow随笔——交叉熵公式推导
- 基于android的电子词典设计_基于安卓Android的电子词典的设计与实现
- Scala安装和开发环境配置教程
- 【CSS】制作ICO图标
- 威廉玛丽学院计算机教授刘旭,专栏-中国计算机学会
- ArcEngine 入门教程-控件初体验
- 10个常见的Android 新手误区
- 如何安装部署beego项目
- Minecraft 1.12.2 彩色渐变字体0.3 掉落物光束
- 全缓存、行缓存和无缓存
- 720phi10p 和 720p有什么区别_除了情怀还剩什么?索尼Z5 Compact评测
- Spring Cloud中Hystrix的请求合并