完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include"reg51.h"
#include"intrins.h" typedef unsigned char uint8; typedef unsigned int uint16; ***it MOSI = P3^3; ***it MISO = P3^4; ***it CLK = P3^2; ***it CE = P3^0; ***it CSN = P3^1; ***it IRQ = P3^5; /*************************************/ #define TX_ADR_WIDTH 5 #define RX_ADR_WIDTH 5 #define TX_PLOAD_WIDTH 5 #define RX_PLOAD_WIDTH 5 uint8 const t_address[]={0x01,0x01,0x01,0x01,0x01}; uint8 const r_address[]={0x10,0x10,0x10,0x10,0x10}; uint8 tbuf[5]={1,2,3,4,5}; uint8 rbuf[5]; /***********可位寻址*********************/ uint8 bdata sta; ***it RX_DR=sta^6; ***it TX_DS=sta^5; ***it MAX_RT=sta^4; /*************************************/ /*SPI指令*/ /*************************************/ #define R_REG 0x00 #define W_REG 0x20 #define RD_RX_PLOAD 0x61 #define WR_TX_PLOAD 0xA0 #define FLUSH_TX 0xE1 #define FLUSH_RX 0xE2 #define REUSE_TX_PL 0xE3 #define NOP 0xFF /*************************************/ /*寄存器地址*/ /*************************************/ #define CONFIG 0x00 #define EN_AA 0X01 #define EN_RXADDR 0x02 #define SETUP_AW 0x03 #define SETUP_RETR 0x04 #define RF_CH 0x05 #define RF_SETUP 0x06 #define STATUS 0x07 #define OBSERVE_TX 0x08 #define CD 0x09 #define RX_ADDR_P0 0x0A #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C #define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0x17 void nrf_init(); uint8 spi_wr(uint8 uchar); uint8 spi_read(uint8 reg); uint8 wr_reg_com(uint8 reg,date); uint8 r_reg_buf(uint8 reg,uint8 *pbuf,uint8 width); uint8 w_reg_buf(uint8 reg,uint8 *pbuf,uint8 width); void sent_data(uint8 *pbuf); void delayus(uint8 us); /***************************/ void delayus(uint8 us) { for(;us>0;us--) _nop_(); } uint8 spi_wr(uint8 uchar) { uint8 i; for(i=0;i<8;i++) { MOSI=(uchar&0x80); uchar<<=1; CLK=1; uchar|=MISO; CLK=0; } return uchar; } uint8 spi_read(uint8 reg) { uint8 date; CSN=0; spi_wr(reg); date=spi_wr(0); CSN=1; return date; } uint8 wr_reg_com(uint8 reg,date) { uint8 status; CSN=0; status=spi_wr(reg); spi_wr(date); CSN=1; return status; } uint8 r_reg_buf(uint8 reg,uint8 *pbuf,uint8 width) { uint8 i,status; CSN=0; status=spi_wr(reg); for(i=0;i CSN=1; return status; } uint8 w_reg_buf(uint8 reg,uint8 *pbuf,uint8 width) { uint8 i,status; CSN=0; status=spi_wr(reg); for(i=0;i CSN=1; return status; } void sent_data(uint8 *pbuf) { CE=0; w_reg_buf(W_REG+RX_ADDR_P0,r_address,RX_ADR_WIDTH); w_reg_buf(WR_TX_PLOAD,pbuf,TX_PLOAD_WIDTH); wr_reg_com(W_REG+CONFIG,0x0e); CE=1; delayus(50); } void nrf_init() { delayus(100); CE=0; CSN=1; CLK=0; // IRQ=1; w_reg_buf(W_REG+TX_ADDR,t_address,TX_ADR_WIDTH); w_reg_buf(W_REG+RX_ADDR_P0,r_address,RX_ADR_WIDTH); wr_reg_com(W_REG+EN_AA,0x00); wr_reg_com(W_REG+EN_RXADDR,0x00);//打开通道0 // wr_reg_com(W_REG+SETUP_RETR,0x03); //关闭自动重发 wr_reg_com(W_REG+RF_CH,0);//频率 wr_reg_com(W_REG+RX_PW_P0,RX_PLOAD_WIDTH);//设置有效数据宽度 wr_reg_com(W_REG+RF_SETUP,0x07); wr_reg_com(W_REG+CONFIG,0x0e); } void main() { uint8 TxBuf[20]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10, 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20}; nrf_init(); sent_data(TxBuf); sent_data(TxBuf); P0=spi_read(STATUS); while(1); } 在单片机开发板上 P0口的led一直都不亮 ,求打神帮忙看看怎么改 不胜感激 |
|
相关推荐
1个回答
|
|
ZQ-nRF24L01+PA是一款基于nRF24L01+PA无线芯片开发的远距离数传模块是工作在2.4~2.5GHz 世界通用ISM 频段的无线收发模块。 无线收发单元选用应用较广的nRF24L01+芯片,同时集成高集成度的射频前端芯片,使本模块的最高输出功率达到了+22dBm。当工作在发射模式下发射功率为+22dBm时电流消耗为130mA,接收模式时为22mA,掉电模式时仅2μA。
模块外接引脚与普通nRF24L01+模块完全兼容。射频前端芯片的收发模式切换与掉电均可自动完成切换,无需用户干预也不用添加单独的控制引脚。用户原有的电路与代码无需改动即可直接使用。 产品特点 使用nRF24L01+作为无线收发单元。 2.4GHz全球免申请ISM工作频段。 工作频率范围2400MHz~2525MHz。 集成射频前端芯片,发射功率最高可达+22dBm。 外接引脚与普通nRF24L01+模块完全兼容。 支持2Mbps、1Mbps和250kbps传输速率。 独立的32字节RX FIFO和TX FIFO。 通过4线SPI接口与MCU连接,速率0~8Mbps,同时提高1个可屏蔽的中断输出引脚。 支持自动应答及自动重发,内置地址及CRC数据校验模功能。 SMA接口,可方便连接同轴电缆或外置天线。 工作电压范围:2.0V~3.6V。 工作温度范围:-40℃~+85℃ 通讯距离:1800米 产品用途 ZQ-nRF24L01+PA远距离无线数传模块适用于多种无线通信的场合,如远距离无线数据传输系统、无线遥控、有源RFID、智能电网、智能家居等。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:02 , Processed in 0.545259 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号