版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、cc2430学习之一_点对点通信2010.04.21void main(void) set_main_clock_source(crystal); rfpwr = 0x04; while(rfpwr & 0x10); inituart(); /初始化串口 io_dir_port_pin(0,5,io_out); /set p0_5 to output io_dir_port_pin(1,3,io_out); / io_dir_port_pin(1,2,io_in); /set p1_2 to input p0_5 = 1; p1_3 = 0; rf_test_main();/进入无线部分/选择
2、相应的应用#ifdef complete_applicationvoid rf_test_main(void)#elsevoid main(void)#endif int_global_enable(int_on); / global interrupt enables #ifdef rx myaddr = address_0; remoteaddr = address_1; initrftest(); receivemode(); #else / tx时 myaddr = address_1; remoteaddr = address_0; initrftest(); contionuous
3、mode(); /发送数据 #endif/发送子函数void contionuousmode(void) bool res; byte sendbuffer = hello; /要发送的数据 while(1) gled = led_off; /绿灯灭 yled = led_on; /发送前,黄灯亮 /true if the sent packet is acked by the recipient and false otherwise. res = radiosend(sendbuffer, sizeof(sendbuffer), remoteaddr, do_not_ack ); halw
4、ait(200); yled = led_off; /发送后,黄灯灭 halwait(200); if(res = true) /发送成功 gled = led_on; /绿灯亮 halwait(200); else /发送不成功 gled = led_off; /绿灯灭 halwait(200); /接收子函数void receivemode(void) byte* receivebuffer; byte length; byte res; byte sender; while(1) yled = led_on; /接收时黄灯亮 /true if a packet has been rece
5、ived and false if no packet /has been received within the timeout period. res = radioreceive(&receivebuffer, &length, receive_timeout, &sender); yled = led_off; /结束后黄灯灭 if(res = true) /接收成功 gled = led_on; /绿灯亮 halwait(200); /延迟200秒 else /接收失败 gled = led_off; /绿灯灭 halwait(200); /延迟200秒 gled = led_off
6、; /结束一次接收,绿灯灭 点对点通信(cc2430)参考小峰app_ex_main.c/*添加开串口中断函数和串口设置函数*/void uartxisropen(void)/开串口中断函数u0csr |= 0x40; /receiver enable; 接收使能 ien0 |= 0x04; /开串口接收中断 urx0ie = 1,void set_uart0_isr(void) /串口设置函数u0csr |= 0xd0; /1101 0000;uart mode; receiver enable; byte received /with incorrect stop bit level u0
7、ucr |= 0x02; /uart stop bit level: high stop bitvoid main(void)set_main_clock_source(crystal);rfpwr = 0x04;while(rfpwr & 0x10);inituart();uartxisropen(); /#ien0 |= 0x80; /#io_dir_port_pin(0,0,io_out);io_dir_port_pin(0,5,io_out);/io_dir_port_pin(1,3,io_out);/io_dir_port_pin(1,2,io_in);p1sel = 0x00; /
8、#p1dir = 0xff; /#p0_5 = 1;p1_3 = 0;rf_test_main();rf_test.c/*添加串口发送函数*/*void txdata(byte* dat) /#串口发送函数:字符串,字符 格式while(*dat)u0dbuf=*dat+;while(!utx0if);utx0if=0;*/void txdata_1(byte dat) /#串口发送函数:单个字符u0dbuf = dat;while (!utx0if);utx0if = 0;void uarttx_send_string(byte *data,int len) /#串口发送函数:字符串int
9、j;for(j=0;jlen;j+)u0dbuf = *data+;while(utx0if = 0);utx0if = 0;/* fn rf_test_main* brief* main function.* parameters:* param void* return void*/#ifdef complete_applicationvoid rf_test_main(void)#elsevoid main(void)#endifint_global_enable(int_on);#if defined (rx) /#预编译选项if /接收myaddr = address_0;remot
10、eaddr = address_1;initrftest();receivemode();#else /发射myaddr = address_1;remoteaddr = address_0;initrftest();contionuousmode();#endif由以上函数指向接收和发送模式/* fn receivemode* brief* function for receiving data.* parameters:* param void* return void*/void receivemode(void)byte* receivebuffer;byte length;byte
11、res;byte sender;while(1)yled = led_on; /黄亮res = radioreceive(&receivebuffer, &length, receive_timeout, &sender);yled = led_off; /黄灭/res = true;/#个人添加if(res = true)gled = led_on; /红亮halwait(200);/txdata_1(x);uarttx_send_string(receivebuffer,length); /#把接收到的数据通过串口送pctxdata_1(n); /#换行符elsegled = led_of
12、f; /红灯原:offhalwait(200);gled = led_off; /红灯原:off/* fn contionuousmode* brief* function for transferring packets until stopped by user.* parameters:* param void* return void*/void contionuousmode(void)bool res;byte sendbuffer = hello! my name is sendoc;while(1)gled = led_off;yled = led_on;res = radio
13、send(sendbuffer, sizeof(sendbuffer), remoteaddr, do_not_ack );halwait(200);yled = led_off;halwait(200);if(res = true)gled = led_on;halwait(200);elsegled = led_off;halwait(200);/#最后添加串口接收中断函数#pragma vector = urx0_vector_interrupt void urx0_isr(void)unsigned uarttemp;uarttemp = u0dbuf; /串口调试软件发送的数据给ua
14、rttempuaru0dbuf = uarttemp; /把接收到的数据返送串口软件显示挂图:注:1。 workspace中原来有debug和release,添加tx和rx,其中rx添加预编译选项rx。详见条件编译选项的添加(workspace)2。 实验中消除原来的warning,详见iar“warningpe167”3。 发射板子多复位几下这个不好解释啊 ,里面定义了很多东西,比如协议栈各个层的程序。app:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。hal:硬件层目录,包含有与硬件相关的配置和驱
15、动及操作函数。mac:mac 层目录,包含了mac 层的参数配置文件及其mac 的lib 库的函数接口文件。mt:实现通过串口可控各层,于各层进行直接交互。nwk:网络层目录,含网络层配置参数文件及网络层库的函数接口文件,aps 层库的函数接口osal:协议栈的操作系统。profile:af 层目录,包含af 层处理函数文件。security:安全层目录,安全层处理函数,比如加密函数等。tools:工程配置目录,包括空间划分及zstack 相关配置信息。zdo:zdo 目录。zmac: mac 层目录,包括mac 层参数配置及mac 层lib 库函数回调处理函数。zmain:主函数目录,包括入
16、口函数及硬件配置文件。output:输出文件目录,这个ew8051 ide 自动生成的。当然里面还有自己的通信程序,这得一步步自己慢慢的看。 app_ex 应用程序 cul cul库 hal硬件抽象层 tool 工具 output 输出文件 2.6.1、射频初始化函数bool sppinit(uint32 frequency, byte address)功能描述:初始化简单的数据包装协议simple packet protocol (spp),从 dma 管理器申请两个 dma 通道,用于分别从 rx fifo 和 tx fifo 传输数据。定时器4 管理器同样被设置,这个单元用于在数据包发送
17、后接收器在一定时间内没有返回应答时产生中断。无线部分配置为发送,工作在特定的频率,在发送时自动计算和插入和检查crc 值。参数描述:uint32 frequency:rf 的频率(khz.);byte address:节点地址返回:配置成功返回 true,失败返回false2.6.2、发送数据包函数byte sppsend(spp_tx_struct* ppacketpointer)功能描述:发送length 字节的数据(最多122),标志,目的地址,源地址在tx dma 通道传送有效载荷到tx fifo 前插入,如果期望应当,设置相应的标志。参数:spp_tx_struct* ppacketpointer:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西藏农牧学院《园艺疗法概论》2023-2024学年第一学期期末试卷
- 2024版建筑工程施工合同履约保函
- 武汉理工大学《结构设计原理课程设计》2023-2024学年第一学期期末试卷
- 2024版综合医疗设备交易协议细则一
- 2024教育培训机构合作与许可合同
- 个性化民间车辆抵押借款合同范本2024版版B版
- 二零二五年度新能源汽车充电站土地购置协议3篇
- 天津现代职业技术学院《管理知识概论》2023-2024学年第一学期期末试卷
- 二零二五年珠宝设计与定制生产合同
- 2024版基础设施建设劳务分包及消防工程协议
- 政治表现及具体事例三条经典优秀范文三篇
- 高考诗歌鉴赏专题复习:题画抒怀诗、干谒言志诗
- 2023年辽宁省交通高等专科学校高职单招(英语)试题库含答案解析
- GB/T 304.3-2002关节轴承配合
- 漆画漆艺 第三章
- CB/T 615-1995船底吸入格栅
- 光伏逆变器一课件
- 货物供应、运输、包装说明方案
- (完整版)英语高频词汇800词
- 《基础马来语》课程标准(高职)
- IEC61850研讨交流之四-服务影射
评论
0/150
提交评论