找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 24229|回復(fù): 7
收起左側(cè)

SI4463模塊(433M)教訓(xùn)之:發(fā)送接收完畢產(chǎn)生IRQ中斷,讀狀態(tài)可清除

[復(fù)制鏈接]
ID:71477 發(fā)表于 2015-1-1 20:12 | 顯示全部樓層 |閱讀模式
SI4463淘寶賣家教訓(xùn)少占魚之:SI4463模塊發(fā)送數(shù)據(jù)完畢后,IRQ中斷腳輸出0電平。最簡單可靠的就是,while(IRQ_Pin); 跳出等待,說明發(fā)送完畢了。然后  讀狀態(tài)寄存器可清除中斷。
RW_MultiReg_Ack(SI4463_Txd[1], LocationMac[0] ,LocationMac[1], LocationMac[2], LocationMac[3]); //發(fā)送輪詢命令
            while(SI4463_IRQ_BIT);
            SI446X_INT_STATUS( SI4463_Buf );

主函數(shù)中等待接收中斷,判斷命令后應(yīng)答發(fā)送。
while( 1 )
    {
   
      if(SI4463_IRQ_BIT==0x00)
        {
      
      //disableInterrupts();
      SI446X_INT_STATUS( SI4463_Buf );
      if( SI4463_Buf[3] & ( 1<<4 ) )
      {
        //收到一個數(shù)據(jù)包,翻轉(zhuǎn)LED
        length = SI446X_READ_PACKET( SI4463_Buf );
     
        if(modbus_cmd( SI4463_Buf , RW_Reg_Req_Len )==0)//檢查功能碼并計算校驗
        {
          LED_BIT=0;
          //delay_ms(1000);
          //delay_us(900);
     
            if(SI4463_Buf[1] == MAC_SCAN_433M)
          {
                      SI4463_Txd[1]=MAC_SCAN_433M;
                       RW_MultiReg_Ack(SI4463_Txd[1], LocationMac[0] ,LocationMac[1], LocationMac[2], LocationMac[3]); //發(fā)送輪詢命令
                        while(SI4463_IRQ_BIT);
                        SI446X_INT_STATUS( SI4463_Buf );
                        if(SI4463_IRQ_BIT)
                        {
                              delay_ms(100);
                              LED_BIT=1;
                        }
          }
   
  
          //回到接收模式,繼續(xù)等待信號
          SI446X_START_RX( 0, 0, PACKET_LENGTH,0,3,3 );
          delay_ms(20);
          //Get_ADC(4);//進行ADC轉(zhuǎn)換,獲得AD值
          delay_ms(10);
         
           
        }
  
     
      } //end if( buffer[3] & ( 1<<4 ) )
      
    } //end if
  } //end while(1)


評分

參與人數(shù) 1黑幣 +5 收起 理由
渣渣求生記 + 5 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

ID:86559 發(fā)表于 2015-8-9 19:42 | 顯示全部樓層
樓主,能把完整程序貼出來嗎?我最近才接觸Si4463,有個事情很好奇,找到的說明文檔里面都是直接include一個WDS生成的頭文件,然后各種函數(shù)用的飛起,我不太理解,WDS生成的頭文件里面的函數(shù)怎么知道使用mcu的SPI?

菜鳥求教,還望大神指點,謝謝。
回復(fù)

使用道具 舉報

ID:86559 發(fā)表于 2015-8-9 19:48 | 顯示全部樓層
樓主,你好,我最近接觸Si4463,看見很多說明書都是包含一個頭文件,然后各種函數(shù)用的飛起,我不太理解這樣包含的頭文件,里面的函數(shù)怎么知道操作MCU的SPI?

能給我一份比較詳細的程序嗎?我不太會弄這個東西。謝謝了。
回復(fù)

使用道具 舉報

ID:86559 發(fā)表于 2015-8-9 19:52 | 顯示全部樓層
樓主你好,我業(yè)余玩玩單片機,最近接觸SI4463,看到很多文檔都是包含一個頭文件,然后各種函數(shù)用的飛起,我不太明白,包含的WDS生成的頭文件里面的函數(shù)怎么知道操作MCU的SPI?

能把你的詳細程序貼出來學(xué)習(xí)一下嗎?謝謝了。
回復(fù)

使用道具 舉報

ID:86559 發(fā)表于 2015-8-9 19:52 | 顯示全部樓層
樓主你好,我業(yè)余玩玩單片機,最近接觸SI4463,看到很多文檔都是包含一個頭文件,然后各種函數(shù)用的飛起,我不太明白,包含的WDS生成的頭文件里面的函數(shù)怎么知道操作MCU的SPI?
回復(fù)

使用道具 舉報

ID:225832 發(fā)表于 2017-8-23 09:38 | 顯示全部樓層
請問你的SI4463_IRQ_BIT是自己定義的,還是庫里就有,我編譯顯示沒有定義啊
回復(fù)

使用道具 舉報

ID:136504 發(fā)表于 2017-12-14 13:49 | 顯示全部樓層
硅傳科技HW3000模塊以價格和性能優(yōu)勢,替代CC1101/SI4463/SI4432無線模塊。接收電流僅8mA,通信距離可達到2公里遠。相對CC1101/SI4463/SI4432模塊,成本較低。
回復(fù)

使用道具 舉報

ID:620337 發(fā)表于 2022-8-8 14:43 | 顯示全部樓層
搞了很久,算是學(xué)會了SI4463,主要還是參考資料比較少
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表