嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
在PC上从串口向 CC2430发任意长度为 30 字节的字串,若长度不足 30 字节,则以“#“为字串末字节,CC2430在收到字节后会将这一字串从串口反向发向 PC,用串口助手可以显示出来。
1 //main.c 2 #include <iocc2430.h> 3 #include <string.h> 4 5 #define uint unsigned int 6 #define uchar unsigned char 7 #define FALSE 0 8 #define TURE 1 9 10 //定义控制灯的端口 11 #define led1 P1_0 12 #define led2 P1_1 13 14 void Delay(uint); 15 void initUARTtest(void); 16 void InitialAD(void); 17 void UartTX_Send_String(uchar *Data,int len); 18 19 20 uchar Recdata[30]="ChenDu WuXianLong TongXun"; 21 uchar RTflag = 1; 22 uchar temp; 23 uint datanumber = 0; 24 uint stringlen; 25 26 /**************************************************************** 27 *函数功能 :延时 28 *入口参数 :定性延时 29 *返 回 值 :无 30 *说 明 : 31 ****************************************************************/ 32 void Delay(uint n) 33 { 34 uint i; 35 for(i=0;i<n;i++); 36 for(i=0;i<n;i++); 37 for(i=0;i<n;i++); 38 for(i=0;i<n;i++); 39 for(i=0;i<n;i++); 40 } 41 42 /**************************************************************** 43 *函数功能 :初始化串口1 44 *入口参数 :无 45 *返 回 值 :无 46 *说 明 :57600-8-n-1 47 ****************************************************************/ 48 void initUARTtest(void) 49 { 50 51 CLKCON &= ~0x40; //晶振 52 while(!(SLEEP & 0x40)); //等待晶振稳定 53 CLKCON &= ~0x47; //TICHSPD128分频,CLKSPD不分频 54 SLEEP |= 0x04; //关闭不用的RC振荡器 55 56 PERCFG = 0x00; //位置1 P0口 57 P0SEL = 0x3c; //P0用作串口 58 59 U0CSR |= 0x80; //UART方式 60 U0GCR |= 10; //baud_e 61 U0BAUD |= 216; //波特率设为57600 62 UTX0IF = 1; 63 64 U0CSR |= 0X40; //允许接收 65 IEN0 |= 0x84; //开总中断,接收中断 66 } 67 68 /**************************************************************** 69 *函数功能 :串口发送字符串函数 70 *入口参数 : data:数据 71 * len :数据长度 72 *返 回 值 :无 73 *说 明 : 74 ****************************************************************/ 75 void UartTX_Send_String(uchar *Data,int len) 76 { 77 int j; 78 for(j=0;j<len;j++) 79 { 80 U0DBUF = *Data++; 81 while(UTX0IF == 0); 82 UTX0IF = 0; 83 } 84 } 85 86 87 /**************************************************************** 88 *函数功能 :主函数 89 *入口参数 :无 90 *返 回 值 :无 91 *说 明 :无 92 ****************************************************************/ 93 void main(void) 94 { 95 //P1 out 96 P1DIR = 0x03; //P1控制LED 97 led1 = 1; 98 led2 = 0; //关LED 99 100 initUARTtest(); 101 stringlen = strlen((char *)Recdata); 102 UartTX_Send_String(Recdata,27); //wu xian long 103 104 while(1) 105 { 106 if(RTflag == 1) //接收 107 { 108 led2=0; //接收状态指示 109 if( temp != 0) 110 { 111 if((temp!='#')&&(datanumber<30)) 112 { //’#‘被定义为结束字符 113 //最多能接收30个字符 114 Recdata[datanumber++] = temp; 115 } 116 else 117 { 118 RTflag = 3; //进入发送状态 119 } 120 if(datanumber == 30)RTflag = 3; 121 temp = 0; 122 } 123 } 124 125 if(RTflag == 3) //发送 126 { 127 led2 = 1; //关绿色LED 128 led1 = 0; //发送状态指示 129 U0CSR &= ~0x40; //不能收数 130 UartTX_Send_String(Recdata,datanumber); 131 U0CSR |= 0x40; //允许收数 132 RTflag = 1; //恢复到接收状态 133 datanumber = 0; //指针归0 134 led1 = 1; //关发送指示 135 } 136 } 137 } 138 139 /**************************************************************** 140 *函数功能 :串口接收一个字符 141 *入口参数 : 无 142 *返 回 值 :无 143 *说 明 :接收完成后打开接收 144 ****************************************************************/ 145 #pragma vector = URX0_VECTOR 146 __interrupt void UART0_ISR(void) 147 { 148 URX0IF = 0; //清中断标志 149 temp = U0DBUF; 150 }
转载于:https://www.cnblogs.com/zeedmood/archive/2012/09/01/2666935.html
嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...相关推荐
- Zigbee之旅(八):几个重要的CC2430基础实验——看门狗
Zigbee之旅(八):几个重要的CC2430基础实验--看门狗 一.承上启下 再好的操作系统,不管是现在的Win7还是以后Win8.Win9,总会出现BlueScreen的时候,更何况是小小的单片机 ...
- Zigbee之旅(九):几个重要的CC2430基础实验——系统睡眠及中断唤醒
Zigbee之旅(九):几个重要的CC2430基础实验--系统睡眠及中断唤醒 一.承上启下 这一篇,我们来讨论一下CC2430的睡眠功能及唤醒方法.在实际运用中的CC2430节点一般是靠电池来供电,因 ...
- 树莓派4bpython串口通信解读数据_树莓派基础实验36:通用串口通信实验
一.介绍 对于树莓派 3B+来说,他的UART功能有三种: 1.内部蓝牙使用: 2.控制终端使用: 3.与其他设备进行串口通信. 在树莓派基础实验35:USB TO TTL模块实验中学习了通过串口对树 ...
- 嵌入式成长轨迹53 【Zigbee项目】【CC2430基础实验】【串口时钟PC显示】
void InitT1(void) : 函数原型: 1 void InitT1(void) 2 { 3 T1CCTL0 = 0X44; 4 //T1CCTL0 (0xE5) 5 //T1 ch0 中断 ...
- 嵌入式成长轨迹27 【Linux应用编程强化】【中嵌第二阶段】【进程管理】
补充 成长轨迹19 进程操作 成长轨迹21 多线程编程 中的一些概念 不同之处:进程概念.进程基本状态(这里是最起码的状态).信号量机制 一 进程的基本概念 1 程序的顺序执行和并发执行 1).程序 ...
- 嵌入式成长轨迹54 【Zigbee项目】【CC2430基础实验】【系统睡眠工作状态】
本实验在小灯闪烁10 次以后进入低功耗模式 PM3 .CC2430 一共有4 种功耗模式,分别是PM0,PM1,PM2,PM3,以 PM3 功耗最低. SLEEP (0xBE) - Sleep mod ...
- 嵌入式成长轨迹37 【Zigbee项目】【CC2430基础实验】【自动闪烁】
最为简单的代码,只用到一个寄存器P1DIR.因为点亮的led灯(p1.0和p1.1)的管脚是p1的,要输出就得将这两个管脚设置为输出管脚.该寄存器用0~8对应1.0~1.8管脚. 1 //main.c ...
- 嵌入式成长轨迹61 【智能家居项目】【ARM 飞凌ok6410】【在虚拟机Ubuntu下NFS网络文件系统建立】...
推荐阅读顺序: 基本环境搭建: [配置]在虚拟机Ubuntu下NFS网络文件系统建立 <ok6410 Qt移植百科全书> [配置]QT&QWT&sqlite3安装配置 这中 ...
- 嵌入式成长轨迹11 【嵌入式环境及基础】【Linux shell深入】【深入讨论】
一.深入讨论awk 1.条件操作符 < >= <= == != 等符号在awk中都存在 ~ 匹配正则表达式 !~不匹配正则表达式 2.逻辑操作符 && || ! 也都 ...
最新文章
- python3.7和3.8的区别-Python 3.8 有什么新变化
- 算法艺术——网络最大流
- Android之Canvas的drawRoundRect()
- 关于HttpUtility.UrlEncode,Server.UrlEncode
- 共享单车变“私有”、被毁、被盗:用户们都看不下去了,举报!
- AutoFDO自动反馈式优化
- linux登录交换机备份脚本,如何从Linux上备份和恢复许多Cisco路由器和交换机的配置?...
- 使用perl连接oracle数据库
- 自旋锁--Test and Set Clock机制分析
- 2022年考研计算机组成原理_2 数据表示和运算
- 如何删除计算机中的“天翼云盘”图标
- 手机输入法带拼音声调_分享4种给拼音加声调的方法,让你的word更有灵魂
- 学习计算机基础有什么推荐的书和视频?
- 将一个 iOS 设备变成 iBeacon
- 苹果mac电脑如何安装虚拟机?CrossOver Mac2022
- 从零开始掌握微服务软件测试
- 如何调试ajax 和php
- 苹果iOS11重磅改版App Store,开发者应该了解这些
- 第一章 Caché 对象介绍
- gre阅读passage71-105
热门文章
- 2021年朔州市副高考试成绩查询,2021朔州市第二中学校教师成绩查询入口:http://www.shuozhou.gov.cn/ztjs/rlzy/rsks/...
- python 执行shellcode_简述获取shellcode的几种方式
- 丰田pcs可以关闭吗_论安全性能,广汽丰田TNGA车型如何?
- hmm 求隐藏序列_自然语言处理(3)隐马尔科夫模型 HMM
- app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈
- 查询oracle表空间有什么数据,oracle查询表空间使用情况与查询有哪些数据库实例在运行...
- abb工业机器人电压不稳_ABB工业机器人应用常见故障九问九答
- Linux下Tomcat死活找不到JSP页面中import指定类的解决方法
- 达拉草201771010105《面向对象程序设计(java)》第十周学习总结
- 一篇文章助你深入理解zookeeper