با سلام
بله
لطفا از آدرس زیر دانلود کنید.
301 Moved Permanently
بخش عمده اتفاقات در فایل L01_api.c است.این فایل به گونه ای نوشته شده که nRF24L01 را هم میشه در حالت فرستنده و هم در حالت گیرنده برنامه ریزی نمود.به عنوان مثال در صورتی که حالت فرستنده انتخاب بشه کد زیر برای پیکر بندی ثبات های nRF24L01 اجرا میشه:
کد:
void TX_Mode(void)
{
GIE_bit = 0; // Disable global interrupt
TMR1ON_bit = 0; // Stop Timer 1
CE_Pin(CE_LOW); // Set CE pin low to enable stanby mode
ucCom_Mode = TX_MODE;
L01_Flush_TX();
L01_Flush_RX();
L01_Clear_IRQ(MASK_IRQ_FLAGS); // Clear interrupts
ucIRQ_Source = CLEAR;
ucLastStat = ucLinkStat = LINK_ESTABLISH;
nRF_SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f); // Enable Auto.Ack:Pipes 0-5
nRF_SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f); // Enable Pipes 0-5
// nRF_SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500µs + 86µs, 10 retrans...
nRF_SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0xff); // 4000µs + 86µs, 15 retrans...
nRF_SPI_RW_Reg(WRITE_REG + RF_CH, 40); // Select RF channel 40
// nRF_SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0f); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
// nRF_SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:1Mbps, LNA:HCURR
nRF_SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x27); // TX_PWR:0dBm, Datarate:250kbps,
nRF_SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled..
nRF_SPI_Write_Buf(WRITE_REG + TX_ADDR, &ADDRESS_P0, sizeof(ADDRESS_P0)); // Writes TX_Address to nRF24L01
nRF_SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, &ADDRESS_P0, sizeof(ADDRESS_P0)); // RX_Addr0 same as TX_Adr for Auto.Ack
Delay_ms(200);
UART1_Write_Text("Init TX mode! \n\r");
// memcpy(&TX_pload, &TX_PAYLOAD, sizeof(TX_PAYLOAD));
GIE_bit = 1; // Enable global interrupt
// This device is now ready to transmit one packet of 16 bytes payload to a RX device at address
// '3443101001', with auto acknowledgment, retransmit count of 10(retransmit delay of 500µs+86µs)
// RF channel 40, datarate = 2Mbps with TX power = 0dBm.
}