導航:首頁 > 操作系統 > 單片機nrf905

單片機nrf905

發布時間:2022-08-07 21:27:41

① nRF905的拓展

基於nRF905 模塊的AT89S 單片機無線收發系統設計
管腳 名稱 管腳功能 說明
1 VCC 電源 電源+3.3~3.6V DC
2 TX_EN 數字輸入 工作模式選擇
3 TRX_CE 數字輸入 使能晶元發射或接收
4 PWR_UP 數字輸入 晶元上電
5 uCLK 時鍾輸出 (未使用)
6 CD 數字輸出 載波檢測
7 AM 數字輸出 地址匹配
8 DR 數字輸出 接收或發射數據完成
9 MISO SPI 介面 SPI 輸出
10 MOSI SPI 介面 SPI 輸入
11 SCK SPI 時鍾 SPI 時鍾
12 CSN SPI 使能 SPI 使能
13、14 GND 地 接地
下面為典型的 nRF905 模塊數據發送流程[3]:
(1)當微控制器要發送數據時,將接收機的地址和發
送數據通過SPI 介面傳輸給nRF905 模塊;
(2)微控制器設置TRX_CE 和TX_EN 管腳同時置為
高電平,啟動發送端的nRF905 模塊為發送模式;
(3)發送端的nRF905 模塊發送過程處理:
a)射頻寄存器開啟;
b)數據打包(加字頭和CRC 校驗碼);
c)數據包發送;
d)當數據包發送結束,將數據發送完成管腳(DR 管腳)
置為高電平;
(4)如果AUTO_RETRAN 被設置為高,nRF905 模塊
將連續地發送數據包,直到TRX_CE 被設置為低;
(5)TRX_CE 被設置為低時,nRF905 模塊數據包發送
過程結束並回到待機模式。
AT89S單片機控制nRF905 模塊數據發送流程圖如圖3
所示。
下面為典型的 nRF905 模塊數據接收流程[4]:
(1)微控制器控制TRX_CE 為高電平、TX_EN 為低電
平,nRF905 模塊進入接收模式;
(2)650us 後,nRF905 模塊監測空中的信息,等待接
收數據;
(3)當nRF905 模塊檢測到與接收頻率相同的載波時,
設置載波檢測管腳(CD 管腳)為高電平;
(4)當nRF905 模塊接收到有效的地址時,設置地址匹
配管腳(AM 管腳)為高電平;
(5)當一個正確的數據包接收完畢後,nRF905 模塊自
動去掉數據包的字頭、地址和CRC 校驗碼,然後將數據接
受完成管腳置為高電平;
(6)微控制器將TRX_CE 設置為低電平;
(7)微控制器通過SPI 介面以一定的速率提取數據包
中的有效接收數據;
(8)當所有的有效數據接收完畢,微控制器控制nRF905
模塊數據接收完成管腳(DR 管腳)和地址匹配管腳(AM
管腳)為低電平;
(9)nRF905 進入待機模式。
說明:(1)VCC電壓范圍為DC 3.3V~3.6V之間,不能超過3.6V否則會燒壞模塊。
(2)模塊
附加更加詳細的收發程序,包括解釋:
////////////////////////////////////////////整體參數////////////////////////////////////////////////////
//NewMsg-RF905-共有四種工作模式,其中有兩種活動RX/TX模式和兩種節電模式。
//活動模式
// ShockBurst RX
//ShockBurst TX
//節電模式
//掉電和SPI編程
//工作模式:
//┏━━━━┳━━━━┳━━━━┳━━━━━━━━━━━━━━━━┓
//┃PWR UP ┃ TRX CE ┃ TX_EN ┃工作模式 ┃
//┣━━━━╋━━━━╋━━━━╋━━━━━━━━━━━━━━━━┫
//┃0 ┃ x ┃ x ┃掉電和SPI編程 ┃
//┣━━━━╋━━━━╋━━━━╋━━━━━━━━━━━━━━━━┫
//┃1 ┃ 0 ┃ x ┃ Standby和SPI編程 ┃
//┣━━━━╋━━━━╋━━━━╋━━━━━━━━━━━━━━━━┫
//┃1 ┃ 1 ┃ O ┃ShockB urst RX ┃
//┣━━━━╋━━━━╋━━━━╋━━━━━━━━━━━━━━━━┫
//┃ 1 ┃ l ┃ 1 ┃ShockBurst T X ┃
//┗━━━━┻━━━━┻━━━━┻━━━━━━━━━━━━━━━━?
//ShockBurst TX發送流程:
//典型的RF905發送流程分以下幾步:
//A.當微控制器有數據要發送時,通過SPI介面,按時序把接收機的地址和要發送的數據送傳給RF905,
//SPI介面的速率在通信協議和器件配置時確定;
//B.微控制器置高TRX_CE和TX_EN,激發RF905的ShockBurs發送模式;
//C.RF905的ShockBurs tTMI發送:
//(1)射頻寄存器自動開啟;
//(2)數據打包(加字頭和CRC校驗碼);
//(3)發送數據包;
//(4)當數據發送完成,數據准備好引腳被置高;
//D.AUTO_REI'RAN被置高,RF905不斷重發,直到TRX_CE被置低;
//E.當TRX-CE被置低,RF905發送過程完成,自動進入空閑模式。
//注意:ShockBurs tTM工作模式保證,一旦發送數據的過程開始,無
// 論TRX_EN和TX—EN引腳是高或低,發送過程都會被處理完。只有
// 在前一個數據包被發送完畢,RF905才能接受下一個發送數據包
//ShockBurst RX接收流程
// 接收流程
//A.當TRX_CE為高、TX_EN為低時,RF905進入ShockBurs tTM接收模式;
//B.650us後,RF905不斷監測,等待接收數據;
//C.當RF905檢測到同一頻段的載波時,載波檢測引腳被置高;
//D.當接收到一個相匹配的地址,AM引腳被置高;
//E.當一個正確的數據包接收完畢,RF905自動穆去字頭、地址和CRC
// 校驗位,然後把DR引腳置高
//F.微控制器把TRX_CE置低,nRF905進入空閑模式;
//G.微控制器通過SPI口,以一定的速率把數據穆到微控制器內;
//H.彼?械氖?萁郵脹甌希琻RF905把DR引腳和AM引腳置低;
?
//當正在接收一個數據包時,TRX_CE或TX_EN引腳的狀態發生改變,
//RF905立即把其工作模式改變,數據包則丟失。當微處理器接到AM
//引腳的信號之後, 其就知道RF905正在接收數據包,其可以決定是
//讓RF905繼續接收該數據包還是進入另一個工作模式。
///////節能模式
//RF905的節能模式包括關機模式和節能模式。
//在關機模式,RF905的工作電流最小,一般為2.SuA。進入關機模
//式後,RF905保持配置字中的內容,但不會接收或發送任何數據。空
//閑模式有利於減小工作電流,其從空閑模式到發送模式或接收模式的
//啟動時間也比較短。在空闌模式下,RF905內部的部分晶體振盪器處
//於工作狀態?
//五、配置NeWMsg-RF905模塊
//所有配置字都是通過SPlI介面送給RF905。SIP介面的工作方式可
//通過SPlI指令進行設置。當RF905處於空閑模式或關機模式時,SPI
//按口可以保持在工作狀?
//SPI寄存器配置
//SPI介面由5個內部寄存器組成。執行寄存器的回讀模式來確認寄存器的內容。
//狀態寄存器(Status-Register)
//寄存器包含數據就緒(DR)和地址匹配(AM)狀態。
//RF配置寄存器(RF-Configuration Register)
//寄存器包含收發器的頻率,輸出功率等配置信息。
//發送地址(IX-Address)
//寄存器包含目標器件地址,位元組長度由配置寄存器設置。
//發送有效數據( IX-Payload)
//寄存器包含發送的有效ShockBurst數據包數據,位元組長度由配置寄存器設置。
//接收有效數據( IX-Payload)
//寄存器包含接收到的有效ShockBurst數據包數據,位元組長度由配置寄存器設置。在寄存器中的有效數據由
//數據准備就緒(DR)指荊
//SPI指令設置
//用於SPI介面的有用命令見下表。當CSN為低時,SPI介面開始等待一條指令,任何一條新指令均由CSN
//的由高到低的轉換開始。
//┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
//┃ SPI串列介面指令 ┃
//┣━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃指令名稱 ┃指令格式 ┃操作 ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃W CONFIG ┃ OOOOAAAA ┃寫配置寄存器。AAAA指出寫操作的開始位元組,位元組數量取決於 ┃
//┃(WC) ┃ ┃AAAA指出的開始地址。 ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃R CONFIG ┃ OOOIAAAA ┃讀配置寄存器。AAAA指出讀操作的開始位元組,位元組數量取決於 ┃
//┃(RC) ┃ ┃AAAA指出的開始地址。 ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃W TX PAYLOA ┃ 00100000 ┃寫TX有效數據:1-32位元組。寫操作全部從位元組o開始。 ┃
//┃D ┃ ┃ ┃
//┃(WTP) ┃ ┃ ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃R TX PAYLOA ┃ 00100001 ┃讀TX有效數據:1-32位元組。讀操作全部從位元組o開始。 ┃
//┃D ┃ ┃ ┃
//┃(RTP) ┃ ┃ ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃W TX ADDRES ┃00100010 ┃寫TX地址:1-4位元組。寫操作全部從位元組o開始 ┃
//┃S ┃ ┃ ┃
//┃(WTA) ┃ ┃ ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃R TX ADDRES ┃0010001 1 ┃讀TX地址:1-4位元組。讀操作全部從位元組o開始。 ┃
//┃S ┃ ┃ ┃
//┃(RTA) ┃ ┃ ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃R RX PAYLOA ┃ 001 001 00 ┃讀RX有效數據:1-32位元組。讀操作全部從位元組o開始。 ┃
//┃D ┃ ┃ ┃
//┃(RRP) ┃ ┃ ┃
//┣━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//┃CHANNEL CON ┃lOOOpphc ┃快速設置配置寄存器中CH NO,HFREQ_PLL和PA PWR的專用 ┃
//┃FIG ┃cccccccc ┃命令_ CH NO=ccccccccc: HFREQ_PLL=h: PA_PWR=pp ┃
//┃(CC) ┃ ┃ ┃
//┗━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━タ
#include <reg52.h>
//#include <ABSACC.h>
//#include <intrins.h>
//#include <stdio.h>
////----------------------------------------------------------------------------------------------------------------
#define uint unsigned int
#define uchar unsigned char
//----------------------------------------------------------------------------------------------------------------
#define BYTE_BIT00x01
#define BYTE_BIT1 0x02
#define BYTE_BIT2 0x04
#define BYTE_BIT3 0x08
#define BYTE_BIT4 0x10
#define BYTE_BIT5 0x20
#define BYTE_BIT6 0x40
#define BYTE_BIT70x80
//----------------------------------------------------------------------------------------------------------------
bdata unsigned char DATA_BUF;//可位定址的片內RAN
#define DATA7((DATA_BUF&BYTE_BIT7) != 0)
#define DATA0 ((DATA_BUF&BYTE_BIT0) != 0)
sbitflag=DATA_BUF^7;
sbitflag1=DATA_BUF^0;
//------------------------------------ 發送數據緩沖區-------------------------------------------------
#define TxRxBuf_Len 4
unsigned char TxRxBuf[TxRxBuf_Len]={0x29,0x30,0x31,0x32,};
code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};
char tf;
//----------------------------------------NRF905工作模式控制埠------------------------------------------------------
sbitTXEN=P2^4;//發射使能
sbitTRX_CE=P3^2;//發射接收使能
sbitPWR=P2^3;
//----------------------------------------LED顯示埠---------------------------------------------------
sbit LED=P1^0;
//----------------------------------------NRF905 數據交換埠(SPI)---------------------------------------------------
sbitMISO=P2^6;//輸出
sbitMOSI=P2^1;//輸入
sbitSCK=P2^5;//時鍾
sbitCSN=P2^0;//使能
//----------------------------------------nrf905狀態埠---------------------------------------------------------
sbitAM=P2^7;
sbitDR=P3^3;
sbitCD=P2^2;
//---------------------------------------------------------------------------------------------------------------
//----------------------------------------按鍵埠-------------------------------------------------------
sbitKEY=P3^7;
//---------------------nrf905控制指令-------------------------------------------
#define WC0x00 //寫配置寄存器
#define RC0x10 //讀配置寄存器
#define WTP0x20 //向TX-Payload寄存器寫入發送有效數據
#define RTP0x21 //向TX-Payload寄存器讀取發送有效數據
#define WTA0x22 //向TX-Addtess寄存器寫入發送地址
#define RTA0x23 //向TX-Addtess寄存器讀取發送地址
#define RRP0x24 //從RX-Payload寄存器讀取接收到的有效數據
//------------------------------------------NRF905寄存器配置------------------------------------------------
unsigned char idata RFConf[11]=
{
0x00, //配置命令//
0x4c, //CH_NO,配置頻段在430MHZ位元組0,配置頻段
0x0c, //輸出功率為10db,不重發,節電為正常模式 位元組1,000 1100
0x44, //地址寬度設置,為4位元組位元組2,6:4 是TX地址寬度, 2:0是RX地址寬度
0x04,0x04, //接收發送有效數據長度為4位元組位元組3(RX),位元組(TX):可設置為1,2,4,8,16,32 位元組,其中6,7 兩位為空,寫00,則4位元組為:0000 0100 : 0x04 依次類推
0xCC,0xCC,0xCC,0xCC, //接收地址位元組5到位元組8
0x58, //CRC充許,8位CRC校驗,外部時鍾信號不使能,16M晶振 位元組9,
};
//================================================延時===========================================================
void nrf905_Delay(int n)
{
uint i;
while(n--)
for(i=0;i<80;i++);
}
//=================================================SPI讀函數=======================================================
//步驟一:MISO線准備好需要發送的數據位
//步驟二:SCK置高,主機讀取MISO線上的數據
//步驟三:SCK置低,准備接收數據的下一位
// 以上步驟循環執行8次,通過SPI從器件上讀取數據完成!
//數據傳送時候。高位在前,低位在後。
unsigned char SpiRead(void)
{
unsigned char j;
for (j=0;j<8;j++)
{
DATA_BUF=DATA_BUF<<1;
SCK=1;
if (MISO)//讀取最高位,保存至最末尾,通過左移位完成整個位元組
{
DATA_BUF|=BYTE_BIT0;
}
else
{
DATA_BUF&=~BYTE_BIT0;
}
SCK=0;
}
return DATA_BUF;
}
//===========================================SPI寫函數===============================================================
//步驟一:MOSI線准備好需要發送的數據位
//步驟二:SCK置高,器件讀取MOSI線上的數據
//步驟三:SCK置低,准備發送數據的下一位
// 以上步驟循環執行8次,通過SPI從器件上發送數據完成!
//數據傳送時候。低位在前,高位在後。
void SpiWrite(unsigned char send)
{
unsigned char i;
DATA_BUF=send;
for (i=0;i<8;i++)
{
if (DATA7)//總是發送最高位
{
MOSI=1;//SPI輸入,主機寫操作
}
else
{
MOSI=0;
}
SCK=1;
DATA_BUF=DATA_BUF<<1;
SCK=0;
}
}
//--------------------------------------初始化nRF905---------------------------------------------
void nRF905Init(void)
{
CSN=1;// Spi disable
SCK=0;// Spi clock line init low
DR=1;// Init DR for input
AM=1;// Init AM for input
CD=1;// Init CD for input
PWR=1;// nRF905 power on
TRX_CE=0;// Set nRF905 in standby mode
TXEN=0;// set radio in Rx mode
}
//-----------------------------------------------------初始化寄存器-----------------------------------------------
//步驟一:CSN置低電平,SPI介面開始等待第一條命令
//步驟二:調用SpiWrite函數,向nrf905發送WC指令,准備寫入配置信息
//步驟三:反復調用SpiWrite函數,向器件配置寄存器寫入配置信息
//步驟四:CSN置高電平,結束SPI通訊。即nrf905配置完成!
void Config905(void)
{
uchar i;
CSN=0;// CSN片選信號,SPI使能
//SpiWrite(WC);// 向905晶元寫配置命令
for (i=0;i<11;i++)// 循環寫入配置信息
{
SpiWrite(RFConf[i]); //RxTxConf保存預先設置好的配置信息
}
CSN=1;// 結束SPI數據傳輸
}
//-------------------------------發送數據打包---------------------------------------------------
//步驟一:通過SpiWrite函數發送WTP命令,准備寫入TX有效數據
//步驟二:循環調用SpiWrite向TX-Payload寄存器寫入有效數據(中間必須夾有CSN電平變化)
//步驟三:延時
//步驟四: 通過SpiWrite函數發送WTA命令,准備寫入TX地址
//步驟五:循環調用SpiWrite向TX-Address寄存器寫入TX地址
//步驟六:TRC_CE=1;開始發送數據,延時,nrf905數據發送完成,
//當nrf905接收到一條完成的信息時,會將DR引腳置高。
void TxPacket(uchar *TxRxBuf)
{
uchar i;
//Config905();
CSN=0;
SpiWrite(WTP);// Write payload command
for (i=0;i<4;i++)
{
SpiWrite(TxRxBuf[i]);// 寫入32直接發送數據
}
CSN=1;
nrf905_Delay(1);// 關閉SPI,保存寫入的數據
CSN=0;// SPI使能,保存寫入的數據
SpiWrite(WTA);// 寫數據至地址寄存器
for (i=0;i<4;i++)// 寫入四位元組地址 寫入與對方地址一樣的地址
{
SpiWrite(TxAddress[i]);
}
CSN=1;// 關閉SPI
TRX_CE=1;// 進入發送模式,啟動射頻發送
nrf905_Delay(1);//進入ShockBurst發送模式後,晶元保存數據
TRX_CE=0;// 發送完成後返回ATANDBY模式 while (DR!=1);
}
//----------------------------------------------設置發送初始狀態---------------------------------------------
void SetTxMode(void)
{
TRX_CE=0;
TXEN=1;
nrf905_Delay(1); // nrf905_Delay for mode change(>=650us)
}
//步驟一:TRX_ce=0;必須將次引腳置低,使905進入standby模式
//步驟二:發送RRP指令
//步驟三:循環調用SpiWrite函數,讀取接收到的數據
//步驟四:等待DR和AM引腳復位為低電平
// AM 地址匹配,接收到有效地址,被置高
// DR 接收到有效數據包,並解碼後,被置高,當所有有效數據被讀取後,
// nrf905降AM和DR置低,最後需要注意的是,必須首先設置器件的
// 發送/接收模式才能保證有效的數據發生接收
//-----------------------------------------------設置nrf905進入接收模式---------------------------------------------------
void SetRxMode(void)
{
TXEN=0;
TRX_CE=1;
nrf905_Delay(1); // nrf905_Delay for mode change(>=650us)
}
//-------------------------------------判斷數據接收狀態-----------------------------------------------------
unsigned char CheckDR(void)//檢查是否有新數據傳入 Data Ready
{
DR=1;
//通過對埠寫1,可以使埠為輸入狀態,這51的 特性。不熟悉者可以參閱51相關書籍作證(將DR埠設置為輸入狀態。)
if (DR==1)
{
DR=0;
return 1;
}
else
{
return 0;
}
}
//----------------------------NRF905接收到數據後讀取保存------------------------------------------------------------
void RxPacket(void)
{
uchar i;
nrf905_Delay(1);
//TRX_CE=0;// 設置905進入待機模式
nrf905_Delay(100);
TRX_CE=0;
CSN=0;// 使能SPI
nrf905_Delay(1);
SpiWrite(RRP); //准備讀取接收到的數據
for (i = 0 ;i < 4 ;i++)
{
TxRxBuf[i]=SpiRead();// 通過SPI介面從905晶元讀取數據
}
CSN=1;//禁用SPI
nrf905_Delay(10);
TRX_CE=1;
}
//--------------------------------------------------------數據接收------------------------------------------------
void RX(void)
{
SetRxMode();
// while (CheckDR()==0); 為了實現雙向通信,就不能一直處於接收等待狀態,所以注釋掉
nrf905_Delay(10);
RxPacket();
if(TxRxBuf[0]==0x29)
{
LED=0;
nrf905_Delay(300);
LED=1;
nrf905_Delay(300);//接收到數據 後閃爍
}
}
//-----------------------------------------------------------------------------------------------------------------
void main(void)
{
nRF905Init();
Config905();
LED=1;
while(1)
{
RX();
if(KEY ==0 )
{
while(KEY==0);
tf = 1 ;
TxRxBuf[0]=0x29;
}
if (tf==1)
{
SetTxMode();
TxPacket(TxRxBuf);// 發送命令數據
LED=0;
nrf905_Delay(300);
LED=1;
nrf905_Delay(300);//發送後LED閃爍
tf = 0;
}
}
}

② 51單片機怎樣控制NRF905

我博客有51連接NRF24L01+的詳細調試方法,都是突發發送方式的,可以供參考。希望對你有幫助!http://hi..com/txz01/home

③ 51單片機 NRF905發射數據 數碼管動態掃描,數碼管不能正常顯示~~~

對時間要求高的,執行時間也不長,可以考慮放在定時器中斷里,定時間隔看數碼管個數定,如4個則可2~5ms刷新一位數碼管顯示。
假設4位數碼管:
unsinged int positon;
unsinged int dspData[4];
定時器中斷:
{
//清除中斷標志
//重裝定時器

if(++positon > 3)
{
positon = 0;
}

//數碼管寄存器 = dspData[positon];
}

④ nRF905 DR AM CD 電平,與51單片機引腳連接

這個問題剛好被我不小心看到,在發送端時,數據打包發送完畢(打包也就是加入前導和校驗碼),CD置位;在接收端,監測到載波CD置位,(同學CD就是carry
波,英語學的不大好,波的英語忘記了),當檢測到地址時,還是正確的接受地址,那麼AM(AM就是adress什麼什麼的)置位,至於DR不是被單片機讀出才置位的,而是發送的數據被打包,就是加了好多像前導、校驗碼之類的東東,所以接收時還要nrf905來解包,905解包成功就可以被單片機讀取了,那麼這時DR置位。小小見解希望對你有幫助!

⑤ nrf905怎麼與單片機連接,任何IO口都可以嗎

NRF905
無線通訊模塊
,我用過這個,的確是
SPI介面
通信的,如果沒
記錯
的話應該還是3.3V供電;單片機的通用I/O口都可以連接的,通用I/O口可以使用軟體模擬SPI通信,如果你用的單片機具有硬體SPI模塊的話,建議還是用專用SPI介面,因為使用通用I/O模擬SPI的速度沒有專用SPI的速度快

⑥ STC單片機 nRF905發送和接收數據

可以給你寫一份的

⑦ 單片機和NRF905

nRF905是用SPI方式接受和發送數據的,我有現成的程序可以供你參考

⑧ NRF905怎麼與51單片機連接

NRF905無線通訊模塊,我用過這個,的確是SPI介面通信的,如果沒記錯的話應該還是3.3V供電;單片機的通用I/O口都可以連接的,通用I/O口可以使用軟體模擬SPI通信,如果你用的單片機具有硬體SPI模塊的話,建議還

是用專用SPI介面,因為使用通用I/O模擬SPI的速度沒有專用SPI的速度快

閱讀全文

與單片機nrf905相關的資料

熱點內容
安卓游戲耳機怎麼戴 瀏覽:14
不越獄怎麼去除app廣告 瀏覽:174
ipadminipdf閱讀 瀏覽:504
文件夾無限制壓縮會不會降低內存 瀏覽:410
榮耀怎樣創建文件夾 瀏覽:629
如何用本機登陸遠程伺服器地址 瀏覽:680
黃小鴨解壓文具盒 瀏覽:670
女程序員的轉行方法 瀏覽:881
東風啟辰車聯網安裝文件夾 瀏覽:524
華為怎麼設置app時間鎖 瀏覽:660
後宮app視頻怎麼下載 瀏覽:525
如何把圖片轉換從PDF格式 瀏覽:259
重寫和重載的區別java 瀏覽:234
expressvpnandroid 瀏覽:84
儲存卡被加密怎麼解除 瀏覽:169
地球怎麼壓縮直徑 瀏覽:780
金鏟鏟之戰伺服器爆滿怎麼進 瀏覽:160
同仁堂pdf 瀏覽:935
如何編譯原理課程教材 瀏覽:730
單片機控制顯示器 瀏覽:777