已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include/* 引脚连接宏定义*/#define DATA LATBbits.LATB0/频道1收发数据端#define CLK1 LATBbits.LATB1/频道1时钟#define DR1 LATBbits.LATB2/频道1数据已准备好#define CS LATBbits.LATB3/配置模式片选#define CE LATBbits.LATB4/收发状态控制#define PWR_UP LATBbits.LATB5/芯片唤醒/* 状态切换宏定义*/#define NRF2401_Mode_RT() PWR_UP=1;CE=1;CS=0;/收发#define NRF2401_Mode_Deploy() PWR_UP=1;CE=0;CS=1;/配置#define NRF2401_Mode_Free() PWR_UP=1;CE=0;CS=0;/空闲#define NRF2401_Mode_Off() PWR_UP=0/关机/* 测试用数据*/const unsigned char Dat10=1,2,3,4,5,6,7,8,9,10;/* NRF2401配置数据备 注:当芯片未掉电,且需要切换收发方式时仅需要发送一个字节*/const unsigned char NRF2401_Deploy_Data15= 0x50,/DATA2_W通道二数据包长度80bit(10byte),DATA2_W=256-ADDR_W-CRC(bit) 0x50,/DATA2_W通道一数据包长度,DATA1_W-20db,-10db,-5db,0db),RF_PWR 0x05 /b7b1:频道选择4,RF_CH# /b0:配置成收模式(0-发送;1-接收),RXEN;/* IO初始化函数函数名称:Init_IOforNRF2401();输入参数:无输出参数:无备 注:无*/void Init_IOforNRF2401(void)TRISBbits.TRISB0=0;/设置DATA引脚为输出TRISBbits.TRISB1=0;/设置CLK引脚为输出TRISBbits.TRISB2=1;/设置DR1引脚为输入TRISBbits.TRISB3=0;/设置CS引脚为输出TRISBbits.TRISB4=0;/设置CE引脚为输出TRISBbits.TRISB5=0;/设置PWR_UP引脚为输出/* 数据串行发送函数函数名称:NRF2401_DataSerialSend();输入参数:待发送数据块首地址,待发送数据个数输出参数:无备 注:调用前要对NRF2401的工作模式做相应的设定*/void NRF2401_DataSerialSend(unsigned char *p,unsigned char n)unsigned char i,j;/unsigned char d;/TRISBbits.TRISB0=0;/设置DATA引脚为输出TRISBbits.TRISB1=0;/设置CLK引脚为输出/CLK1=0;for(i=0;in;i+)/字节数 d=*(p+); for(j=0;j500nS else DATA=0; /Nop(); / Nop(); CLK1=1;/最短时钟宽度500nS d=1; /Nop();/ Nop(); CLK1=0; DATA=0;/CLK1=0;/* 数据串行读取函数函数名称:NRF2401_DataSerialRead();输入参数:接收数觉存储区首地址,接收数觉个数输出参数:接收是否与设置吻合备 注:调用前要对NRF2401的工作模式做相应的设定*/unsigned char NRF2401_DataSerialRead(unsigned char *p,unsigned char n)unsigned char i,j;unsigned char d;TRISBbits.TRISB0=1;/设置DATA引脚为输入TRISBbits.TRISB1=0;/设置CLK引脚为输出CLK1=0;for(i=0;in;i+) for(j=0;j8;j+) d5uS,两次通信间隔50nSDelay10TCYx(3);NRF2401_DataSerialSend(unsigned char *)NRF2401_Deploy_Data,15);/发送数据NRF2401_Mode_RT();/从配置模式退出,进入到收发模式,使配置有效/* NRF2401收发状态配置函数名称:NRF2401_R_and_T();输入参数:n n0 收状态 n=0 发状态 ch 要选择的频道输出参数:无备 注:用于更改收发模式和通信频道 最后两个字节具体配置见NRF2401_Deploy_Data数组 仅用于NRF2401被配置过,且没有掉电的情况*/void NRF2401_R_and_T(unsigned char n,unsigned char ch)unsigned char i;NRF2401_Mode_Deploy();/进入配置模式,保持时间5uSDelay10TCYx(2);if(n) i=(ch1)|0x01; else i=(ch5uSNRF2401_DataSerialSend(Add,4);/32位地址,根据最初的配置信息改动,或者NRF2401_Deploy_Data122表示NRF2401_DataSerialSend(Dat,10);/10bety数据,根据最初的配置信息改动,或者NRF2401_Deploy_Data1表示NRF2401_Mode_Free();/拉低CE,使芯片开始发送/* 主函数*/void main(void)unsigned char DATA_for_R10;unsigned char a,b,c,d,e,f,g,h,i,j;unsigned char k;ADCON1 = ADCON1 | 0x0f;/关闭模拟IOTRISA = 0x00;/A口为输出TRISAbits.TRISA5=0;/LED点亮Init_IOforNRF2401();/初始化端口NRF2401_Init();/按表格配置NRF2401/TRISB=0xff;while(1) /NRF2401_Init();/按表格配置NRF2401if(PORTBbits.RB2=1) LATAbits.LATA5=0; NRF2401_DataSerialRead(DATA_for_R,10); a=DATA_for_R0; b=DATA_for_R1; c=DATA_for_R2; d=DATA_for_R3; e=DATA_for_R4; f=DATA_for_R5; g=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年家庭护理服务平台可行性研究报告及总结分析
- 2025年老旧小区改造与文化空间再造项目可行性研究报告及总结分析
- 2025年基于区块链的供应链管理系统项目可行性研究报告及总结分析
- 2025年线上线下融合零售模型项目可行性研究报告及总结分析
- 2025年二级建造师继续教育考试题库及答案
- 2025年门窗防盗加固协议
- 2025年众筹平台建设可行性研究报告及总结分析
- 2025年清洁能源汽车产业链研究可行性报告
- 2025年湖南省永州市江永县保安员招聘考试题库附答案解析
- 2025年化学分析工技能竞赛理论考试题库 含答案
- 老师餐费补贴管理办法
- 找人调动工作协议与合同
- 2025年农机证理论考试题库
- 卧室收纳培训课件
- 2025年药学三基考试题及答案
- 混合菌种发酵刺梨果酒的生产工艺研究及其香气成分分析
- 消防车辆行驶途中注意事项
- 二类精神病药品培训课件
- 创意摄影教学课件
- 2025-2030中国H发泡剂行业销售策略与需求规模预测报告
- 家具厂溯源管理制度
评论
0/150
提交评论