|
这是代码:
uchar TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; // Define a static TX address;
uchar rx_buf[TX_PLOAD_WIDTH];
uchar tx_buf[TX_PLOAD_WIDTH]={0X02,0X02,0X03,0X05,0X09};
void RX_Mode(void)
{
nRF24L01_CEL;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // Enable Auto.Ack:Pipe0
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0
SPI_RW_Reg(WRITE_REG + RF_CH, 40); // Select RF channel 40
SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // Set PWR_UP bit,enable CRC(2 bytes)& Prim:RX. RX_DR enabled..
nRF24L01_CEH;
Delayms(200);
}
uchar Rx_Packet(uchar *rx_buf)
{
uchar sta,flag=0;
sta=SPI_Read(STATUS); // ¶Áȡ״̬¼Ä´æÆäÀ´ÅжÏÊý¾Ý½ÓÊÕ×´¿ö
if(sta&0x40) // ÅжÏÊÇ·ñ½ÓÊÕµ½Êý¾Ý RX_DR==1?
{
nRF24L01_CEL; //SPI ʹÄÜ
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from R X_FIFO buffer
flag =1; //¶ÁÈ¡Êý¾ÝÍê³É±êÖ¾
}
SPI_RW_Reg(WRITE_REG+STATUS,sta); //½ÓÊÕµ½Êý¾Ýºó RX_DR,TX_DS,MAX_PT ¶¼ÖøßΪ1£¬ ͨ¹ýд1À´Çå³þÖжϱêÖ¾
return (flag);
}
void TX_Mode(void)
{
nRF24L01_CEL;
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // Writes data to TX payload
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // Enable Auto.Ack:Pipe0
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...
SPI_RW_Reg(WRITE_REG + RF_CH, 40); // Select RF channel 40
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // Set PWR_UP bit,enable CRC(2 bytes)& Prim:TX. MAX_RT & TX_DS enabled..
nRF24L01_CEH;
Delayms(200);
}
怎么把串口的数据传到nRF24L01发射和接受 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|