單片機如何獲取伺服器數據包
1、直接:單片機配乙太網介面,移植個tcp/ip協議站,單片機直接登陸伺服器上傳數據;
2、間接:單片機通過串口、USB等其他介面把數據傳給有乙太網的模塊或設備(如電腦),在傳到伺服器。
2. 單片機里的數據如何通過GPRS模塊上傳到伺服器的資料庫空間(詳細)
我每天的工作就是GPRS模塊。
單片機通過AT命令可以連接指定IP和埠的伺服器。
AT命令是核心。
這樣單片機能夠控制GPRS模塊,通過SOCKET,http方式鏈接訪問伺服器。
3. 51單片機串口接收數據包函數 給我個標準的吧
惜憶淚情 的方式不可取。將收到的數據顯示到數碼管上,如果是動態掃描,那麽有一個問題,掃描間隔會有個幾ms,這就會影響下一個數據進入中斷,因此帶來丟包問題。如果是靜態顯示,不知道有何意義。
一般類似於這種情況,建議你建立個數組存放。
#include <reg51.h>
#define DataLen 10 //定義為10個數據為一幀,產生一次標志位。
unsigned char Data[DataLen];
unsigned char Datai; //用於記錄當前接收了多少
bit Flag; //產生接收完成標志位。
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void main(void)
{
InitUART();
while(1)
{
if(Flag)
{
Flag=0;
//表示 收到十個數據了。你該幹啥就幹啥,在這里加入你的代碼。
}
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
Data[Datai++]=SBUF;
if(Datai==DataLen)
{
Flag=1;
Datai=0;
}
}
}
這是一種方式,不過一種具有協議的話,都會加上一個定時器,就是你一開始接收第一個數據開始,我就開始計時,每進來一個,我就清零一次定時器,如果定時大於5ms我就認為你收完了,再判斷數據包的長度,如果長度不夠,就表示 丟包了。 協議上一般需要用到這種方式,叫接收超時計數。
這個代碼我一直在用,沒什麼問題。
希望可以幫到你,有什麼問題歡迎一起探討。
4. 單片機如何調取
單片機內部程序如果沒有被加密,那麼可以用編程器(也就是程序燒錄器)調取出來
單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。
單片機作為計算機發展的一個重要分支領域,根據目前發展情況,從不同角度單片機大致可以分為通用型/專用型、匯流排型/非匯流排型及工控型/家電型。
5. 單片機接入伺服器。
可以使用wifi透傳模塊,通過單片機的串口或者SPI口與模塊通信,連接上伺服器之後就可以發送了。現在這種模塊慶科的用的比較多一些,但是他們的資料給的很亂。
6. 單片機如何實現數據上傳到伺服器
單片機有串口----RS232.
目前PC多不帶RS232介面了
使用,用轉接器再聯到PC的USB口上
7. 單片機如何實時傳輸數據到伺服器
單片機傳送數據到伺服器,用sim900A及wifi模塊,應該能夠向應單片機的速度,關鍵在於要優化單片機程序,模塊設置成透傳模式。
8. 單片機如何接收並使用電腦發送來的數據
你可以在你的電腦和單品機通信的時候,自己定義一個通信協議——也就是定義一種通信格式:以什麼字元作為一個數據包的開始如(0x66 0xab)代表數據幀的開頭,之後的一個自己單表數據幀的總長度(如果所有的數據包是定長的可以不需要該欄位),之後一個自己定義為命令的類型(如:0x01 表示電動機的轉動方向;0x02 代表轉動圈數等),之後跟上實際要發送給單品機的數據,如正傳還是反轉,轉動的圈數是多少等。如果不放心你可以在最後加上數據幀的校驗和,用來保證數據再傳輸過程中沒有出錯。