已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 对位芳纶聚合工岗位质量能力考核试卷含答案
- 乙苯装置操作工安全生产规范考核试卷含答案
- 石油焦煅烧工安全演练知识考核试卷含答案
- C产品2025年在健身器材市场的需求预测报告
- 户外运动装备研发分析方案
- 2026秋新人教版PEP六年级英语上册教学计划
- 国家法定正常退休年龄
- 药店消防安全培训内容
- 彩妆实施方案
- 砂石运输装卸实施方案
- 2026年群众身边不正之风整治题库
- 个体店铺安全生产制度
- 期末总复习:高频模拟能力提升综合训练题-2025-2026学年苏科版八年级物理上册
- 2026年小学道德与法治教研组工作计划
- 2025北京五中分校初一(上)第一次月考英语试题及答案
- 建构·迁移·创新:初中数学“新定义”型阅读题深度教学方案
- GB/T 5785-2025紧固件六角头螺栓细牙
- 2025中共杭州市委党校萧山区分校招聘事业人员1人笔试题库附答案
- 奖牌设计课件
- 口腔护理用品中200种激素类、抗生素及抗菌类成分筛查与确认标准研究报告
- 空调系统能源托管服务项目方案投标文件(技术方案)
评论
0/150
提交评论