已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
发送:/avr24l01.c#include#define SS_portPORTB#define SS0x10#define CE_portPORTB#define CE_ddrDDRB#define CE0x01#define IRQ_portPORTB#define IRQ_ddrDDRB#define IRQ0x02#define CONFIG0x00#define EN_AA0x01#define EN_RXADDR0x02#define SETUP_AW0x03#define SETUP_RETR0x04#define RF_CH0x05#define RF_SETUP0x06#define STATUS0x07#define OBSERVE_TX0x08#define CD0x09#define RX_ADDR_P00x0a#define RX_ADDR_P10x0b#define RX_ADDR_P20x0c#define RX_ADDR_P30x0d#define RX_ADDR_P40x0e#define RX_ADDR_P50x0f#define TX_ADDR0x10#define RX_PW_P00x11#define RX_PW_P10x12#define RX_PW_P20x13#define RX_PW_P30x14#define RX_PW_P40x15#define RX_PW_P50x16#define FIFO_STATUS0x17unsigned char get_buf=0;unsigned char RX_ADDRESS=0x01,0x02,0x03,0x04,0x01;unsigned char TX_ADDRESS=0x01,0x02,0x03,0x04,0x00;void spi_io_init(void)CE_ddr|=CE;CE_port&=CE;IRQ_ddr&=IRQ;IRQ_port|=IRQ;DDRB|=0xb0;DDRB&=0xbf;PORTB&=0x0f;void spi_init(void)spi_io_init();SS_port|=SS;SPCR=0x51;SPSR=0x00;unsigned char w_spi(unsigned char dat)unsigned char return_buf=0;SPSR&=0x7f;SPDR=dat;while(SPSR&0x80)=0);return_buf=SPDR;return(return_buf);unsigned char r_reg(unsigned char addr)unsigned char return_buf=0;SS_port&=SS;w_spi(addr);return_buf=w_spi(0);SS_port|=SS;return(return_buf);unsigned char w_reg(unsigned char addr,unsigned char dat)/return statusunsigned char return_buf=0;SS_port&=SS;return_buf=w_spi(addr+0x20);w_spi(dat);SS_port|=SS;return(return_buf);unsigned char r_buf(unsigned char *rx_buf,unsigned char num)/return statusunsigned char return_buf=0;unsigned char count=0;SS_port&=SS;return_buf=w_spi(0x61);for(count=0;countnum;count+)rx_bufcount=w_spi(0);SS_port|=SS;return(return_buf);unsigned char w_buf(unsigned char addr,unsigned char *tx_buf,unsigned char num)unsigned char return_buf=0;unsigned char count=0;SS_port&=SS;return_buf=w_spi(addr);for(count=0;countnum;count+)w_spi(tx_bufcount);SS_port|=SS;return(return_buf);void rx_mode(void)CE_port&=CE;w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址,长度为5w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0f);/16位CRC校验CE_port|=CE;void tx_mode(void)CE_port&=CE;w_buf(TX_ADDR+0x20),TX_ADDRESS,5);/发送地址,长度为5w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(SETUP_RETR,0x0a);/自动重发10次w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0e);/16位CRC校验CE_port|=CE;void tx_data(unsigned char *dat,unsigned char num)CE_port&=CE;w_buf(TX_ADDR+0x20),TX_ADDRESS,5);/发送地址,长度为5w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址w_buf(0xa0,dat,num);w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(SETUP_RETR,0x0a);/自动重发10次w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0e);/16位CRC校验CE_port|=CE;void tx(unsigned char *dat,unsigned char num)CE_port&=CE;w_buf(0xa0,dat,num);CE_port|=CE;/main.c#includeextern unsigned char get_buf;void delay(unsigned int i)unsigned int j,k;for(j=0;ji;j+)for(k=0;k500;k+);int main(void)unsigned char aa5=0x04,0x03,0x02,0x01,0x00;spi_init();get_buf=r_reg(0x00);/get_buf=w_reg(0x00,0x08);/get_buf=r_buf(aa,3);tx_mode();while(1)tx(aa,4);delay(400);接收:/avr24l01.c#include#define SS_portPORTB#define SS0x10#define CE_portPORTB#define CE_ddrDDRB#define CE0x01#define IRQ_portPORTB#define IRQ_ddrDDRB#define IRQ0x02#define CONFIG0x00#define EN_AA0x01#define EN_RXADDR0x02#define SETUP_AW0x03#define SETUP_RETR0x04#define RF_CH0x05#define RF_SETUP0x06#define STATUS0x07#define OBSERVE_TX0x08#define CD0x09#define RX_ADDR_P00x0a#define RX_ADDR_P10x0b#define RX_ADDR_P20x0c#define RX_ADDR_P30x0d#define RX_ADDR_P40x0e#define RX_ADDR_P50x0f#define TX_ADDR0x10#define RX_PW_P00x11#define RX_PW_P10x12#define RX_PW_P20x13#define RX_PW_P30x14#define RX_PW_P40x15#define RX_PW_P50x16#define FIFO_STATUS0x17unsigned char get_buf=0;unsigned char RX_ADDRESS=0x01,0x02,0x03,0x04,0x00;unsigned char TX_ADDRESS=0x01,0x02,0x03,0x04,0x05;void spi_io_init(void)CE_ddr|=CE;CE_port&=CE;IRQ_ddr&=IRQ;IRQ_port|=IRQ;DDRB|=0xb0;DDRB&=0xbf;PORTB&=0x0f;void spi_init(void)spi_io_init();SS_port|=SS;SPCR=0x51;SPSR=0x00;unsigned char w_spi(unsigned char dat)unsigned char return_buf=0;SPSR&=0x7f;SPDR=dat;while(SPSR&0x80)=0);return_buf=SPDR;return(return_buf);unsigned char r_reg(unsigned char addr)unsigned char return_buf=0;SS_port&=SS;w_spi(addr);return_buf=w_spi(0);SS_port|=SS;return(return_buf);unsigned char w_reg(unsigned char addr,unsigned char dat)/return statusunsigned char return_buf=0;SS_port&=SS;return_buf=w_spi(addr+0x20);w_spi(dat);SS_port|=SS;return(return_buf);unsigned char r_buf(unsigned char *rx_buf,unsigned char num)/return statusunsigned char return_buf=0;unsigned char count=0;SS_port&=SS;return_buf=w_spi(0x61);for(count=0;countnum;count+)rx_bufcount=w_spi(0);SS_port|=SS;return(return_buf);unsigned char w_buf(unsigned char addr,unsigned char *tx_buf,unsigned char num)unsigned char return_buf=0;unsigned char count=0;SS_port&=SS;return_buf=w_spi(addr);for(count=0;countnum;count+)w_spi(tx_bufcount);SS_port|=SS;return(return_buf);void rx_mode(void)CE_port&=CE;w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址,长度为5w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0f);/16位CRC校验CE_port|=CE;void tx_mode(void)CE_port&=CE;w_buf(TX_ADDR+0x20),TX_ADDRESS,5);/发送地址,长度为5w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(SETUP_RETR,0x0a);/自动重发10次w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0e);/16位CRC校验CE_port|=CE;void tx_data(unsigned char *dat,unsigned char num)CE_port&=CE;w_buf(TX_ADDR+0x20),TX_ADDRESS,5);/发送地址,长度为5w_buf(RX_ADDR_P0+0x20),RX_ADDRESS,5);/接收节点地址w_buf(0xa0,dat,num);w_reg(EN_AA,0x00);/使能接收通道0自动应答w_reg(EN_RXADDR,0x01);/使能接收通道0w_reg(SETUP_RETR,0x0a);/自动重发10次w_reg(RF_CH,0x40);/射频通道w_reg(RX_PW_P0,4);/有效数据宽度w_reg(RF_SETUP,0x07);/1M传输率,发射功率1dbmw_reg(CONFIG,0x0e);/16位CRC校验CE_port|=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南邵阳学院附属第二医院青年就业见习生招聘35人笔试备考试题及答案详解
- 儿童语言中枢发育关键期的医学干预策略研究
- 压缩空气干燥净化市场发展策略及供需平衡趋势预测研究报告
- 中国导电膜玻璃行业发展分析及竞争策略与趋势预测研究报告
- 能源行业市场竞争格局分析及投资评估规划研究报告
- 能源行业生物质能发电市场供需分析投资评估规划研究分析报告
- 中国沥青防水材料行业未来趋势与发展现状调研研究报告
- 量子计算芯片行业市场发展分析及未来前景与产业布局研究
- 新能源汽车市场趋势预测展望及投资规划建议研究报告
- 旅游服务业细分市场发展现状与投资趋势研究报告
- 2026年浙江省金华市重点学校小升初语文考试真题试卷(含答案)
- 2026中国磷化铟粉末行业发展态势及供需前景预测报告
- 2026年毕节工业职业技术学院教师招聘笔试备考试题及答案解析
- QBQB3102023汽车结构用热连轧钢板及钢带
- 2026年外交部遴选驻外使领馆随员笔试题
- 2026中国邮政集团有限公司安徽省分公司社会招聘备考题库及完整答案详解(考点梳理)
- 农村公路建设监理工作报告(范本)
- 人力资源服务行业安全生产应急预案
- 吉林大学挂科制度
- 血液透析中心感染控制与管理方案
- (2025版)无创血糖监测临床应用专家共识课件
评论
0/150
提交评论