|
這個是收發一體的程序,完整的程序在附件里面附件
void main(void)
{
uint while_times = 0;
led6 =0;
led5 =0; // led0 = 0;
lcd_delay(1000);
init_NRF24L01();
lcd_delay(100);
while(1)
{
//===== 發送模式 =====
// if(KEY_0 == 0)//
// {
// TxBuf[1] = 1;
// TxBuf[2] = 1;
nrf_TxMod(); //對相關寄存器配置成發送模式
if(KEY_0 == 0) { TxBuf[1] = 0;led2 = 0; }
if(KEY_1 == 0) { TxBuf[1] = 1; led2 = 1;}
// else { TxBuf[1] = 1; }
if(KEY_2 == 0) {TxBuf[2] = 0;led0=0;}
if(KEY_3 == 0) {TxBuf[2] = 1;led0=1;}
//else TxBuf[2] = 1;
//把1存入TxBuf[1]中,然后發送出去;接收程序判斷RxBuf[1]的值,等于1的話點亮LED
//把1存入TxBuf[2]中,然后發送出去;接收程序判斷RxBuf[2]的值,等于1的話點亮LED
nrf_trans(TxBuf); //將待發送的數據寫入NRF24L01
while_times = 80; //檢測是否發送成功 循環檢測?次 【可更改,讓接收循環次數大于發送循環次數效果較好】
while(while_times-- ) //發送超時,或者發送成功,跳出循環 進入接收模式
{
get_nrf_sta(); //獲取狀態標志
if(TX_DS == 1) //發送成功,跳出循環
{break;}
}
// }
// //===== 接收模式 =====
// nrf_RxMod(); //對相關寄存器配置成接受模式
// while_times = 160; //檢測是否接收成功 循環檢測?次 【可更改,讓接收循環次數大于發送循環次數效果較好】
// while(while_times--) //接收超時或者接收成功,跳出循環 進入發送模式
// {
// get_nrf_sta(); //獲取狀態標志
// if(RX_DR == 1) //接收成功
// {
// nrf_read(RxBuf); //接收成功后,將NRF24L01接收到的數據讀到單片機的RxBuf數組中。
// led0=1;
// break; //跳出循環
// }else led0=0;
// }
// if(KEY_0 == 0) led7= 0;
// if(KEY_1 == 0) led7= 1;
// if(RX_DR == 1) //是因為接收到數據,而不是因為超時才跳出循環
// {
//
// if(RxBuf[1] == 0) led2 = 1;
// else led2 = 0;
//
// if(RxBuf[2] == 0) led3 = 1;
// else led3 = 0;
// }
}
}
感覺是接受那部分的,問題。引腳它還是標錯的,后來換過新模塊來調試了。有沒有大神幫看一下。
|
-
-
NRF資料.rar
2019-4-20 09:07 上傳
點擊文件名下載附件
58.62 KB, 下載次數: 11
評分
-
查看全部評分
|