找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1460|回復: 2
打印 上一主題 下一主題
收起左側

nrf24l01在傳送數(shù)據(jù)中不時的跳出其他數(shù)字,是哪里出錯了么?

[復制鏈接]
跳轉到指定樓層
樓主
ID:678740 發(fā)表于 2020-5-2 16:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用nrf24l01向另一塊單片機傳送一個含有5個數(shù)字的數(shù)組,然后用數(shù)碼管顯示,顯示中隔幾秒就會跳出數(shù)字35,這表示什么呀?我把中斷關了出現(xiàn)的頻率會低一些,但是后會跳出35.求解呀!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:648281 發(fā)表于 2020-5-2 16:52 | 只看該作者
你好!
1、沒有程序
2、沒有硬件連接圖
3、不知道你要實現(xiàn)什么
4、更不知道怎么來找出問題
回復

使用道具 舉報

板凳
ID:678740 發(fā)表于 2020-5-18 23:09 | 只看該作者
51hei**1140 發(fā)表于 2020-5-2 16:52
你好!
1、沒有程序
2、沒有硬件連接圖

謝謝回復。“l(fā)那么多問題終于有人回復了,看到的有點晚,希望您有時間看到能夠再次回復。謝謝!
我想用一個單片機向另一個發(fā)送一組數(shù)據(jù),然后用數(shù)碼管顯示出來,
//發(fā)射的主函數(shù)
void main(void)
{       
        char i=0;
        int x=0,y=0;
        unsigned char sta;
        delay_ms(1000);
        init_io();                //引腳初始化
        //delay_ms(1000);
        TX_Mode();
        while(1)
        {
                readadc(0,1);
                tx_buf[0]=ad1;
                tx_buf[1]=ad2;
                CE = 0;
          SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); //將數(shù)據(jù)送入發(fā)射緩沖區(qū)
                CE = 1;
                while(IRQ);
                sta=SPI_Read(STATUS);
                SPI_RW_Reg(FLUSH_TX, 0xff);                                                                                                        //清除發(fā)射緩沖區(qū)
                SPI_RW_Reg(WRITE_REG+STATUS,sta);                                                                                //清除各種中斷標志
                delay_ms(50);
               
        }
}

void readadc(unsigned char add1,add2)
{
        ad1=read_adc(add1);
        ad1=read_adc(add1);
        ad2=read_adc(add2);
        ad2=read_adc(add2);
}
/**************/
//接受端
void main(void)
{
        uchar sta;
       
        Timer1Init();
        Timer0Init();
        init_io();                                                                //初始化IO引腳
        delay_ms(1000);
        RX_Mode();                                                                //配置為接收模式
        while(1)
        {
                sta=SPI_Read(STATUS);                //讀取芯片的狀態(tài)寄存器
          if((sta & 0x40) != 0)                //是否發(fā)生了接收數(shù)據(jù)完成的中斷
          {                                                                                                //是的話,將收到的數(shù)據(jù)存到數(shù)組rx_buf里
                   SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);
                }
                if(rx_buf[4]==0x23&&rx_buf[0]!=35)//判斷收到的數(shù)據(jù)是不是0x23
                {       
                       
                        pwm_chage();
                        dpy_chage_display(rx_buf[0]/100,rx_buf[0]%100/10,rx_buf[0]%10,PWM/10,PWM%10,rx_buf[1]/100,rx_buf[1]%100/10,rx_buf[1]%10);
                }
                        SPI_RW_Reg(FLUSH_RX,0xff);        //清除接收緩沖器
                        SPI_RW_Reg(WRITE_REG+STATUS,sta);//清除接收中斷標志
                        delay_ms(2);
        }
}
void time0() interrupt 1
{
        dpy_display();
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表