導航:首頁 > 程序命令 > 串口命令解析

串口命令解析

發布時間:2024-04-10 02:26:19

『壹』 串口數據解析

想山寨還是想逆向啊,呵呵。串口數據分析,一般的數據幀:幀頭,幀長度,數據體,校驗(可能不存在),幀尾(可能不存在)。幀頭很多是0x02,或ASCII中的「:」,幀尾很多是0x03或0x0d0x0a(回車換行),校驗方式一般有數據域累加,異或,計算CRC等,數據體就千奇百怪了,如果能看懂就看看,如果是加過密的,那你還是放棄吧

『貳』 linux 查看某個串口參數(波特率,數據位等)命令什麼

用CAT命令查看

#cat /proc/tty/driver/serial
如果需要配置串口參數,minicom是個很好的選擇。

一、安裝
sudo apt-get install minicom

二、配置

配置minicom的參數
運行$ sudo minicom -s
便進入了minicom的配置界面,使用上下鍵選擇Serial port setup,回車。此時游標在「change which setting」後面停留,它的上面有如下菜單:

只需輸入上面對應的字母,就可以進如相應的菜單進行設置。設置完成,回車,游標會回到「change which setting」後面,如此重復。完成按回車返回主菜單即可。

『叄』 串口RS-232發送代碼問題

「商業軟體」串口發送和接收數據,發送的只能是字元串型的代碼,設備要收十六進制代碼
答案:
1、分析
發送字元串型,實際是一個一個字元發送的,設備也是一個一個十六進制代碼接受的。
應此,如果設備端要接收「55 01 01 02 01」這樣5個位元組的十六進制代碼,軟體端發送可以這樣,
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
不幸的是如果要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,由於裡面含有十六進制00(即0x00),0x00字元表示是'\0',在字元串中表示的字元串結束。
看你運氣了,如果程序的源代碼中發送字元串模塊,發送字元長度是通過判斷字元串長度(strlen)來工作的,那你怎麼也發送不出「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,從上看出
buff[5]=0x00;buff[6]=0x00;buff[7]=0x5a;時,你的軟體會認為字元串長度只有5。只會發送出「55 01 01 02 01」這樣5個位元組的十六進制代碼。如果你的軟體發送字元長度是根據你輸入或設定的,那能正常發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x5a;
2、解決辦法(不該源代碼的情況下)
做個中間件,需要用到PC的多個串口通道(串口不夠用多串口卡擴展),系統接線也要調整,如果是1對1(一套軟體對一個設備)
例如:軟體是用com1口發送接收,原來是直接com1口接設備,現在改成,com1口接com2口,com2口同時也接設備(注意RS232是可以三線通訊的,PC端com1口的2腳接com2口的3腳,com2口的3腳接設備的2腳,PC端com1口的3腳接com2口的2腳,com2口的2腳接設備的3腳,PC端com1口的5腳接com2口的5腳,接設備的5腳),這樣做的原理是通過com2口來正確發送給設備十六進制代碼。並且com1向com2發送的命令需要修改。例如
要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,軟體這端
發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中間件收到「55 01 01 02 01 ee ff ee ff 5a」這樣10個位元組的十六進制代碼,他就會進行轉換(0xee表示下個位元組需要轉碼,轉碼方法是減去0xff,那0xff實際就是0x00。)這樣通過中間件在com2口向設備發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
以上是發送,如果接收呢,同樣看商業軟體的接受機制,如果商業軟體收到0x00,實際就是'\0',表示一個字元串接受終止,那麼接收數據怎麼整都不能正常收到「55 02 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼(含0x00),那麼只有改寫源代碼一種方法。
3、後記
如果你的所謂商業軟體要求別人改源代碼不切實際,而且商業軟體也不復雜,可以找人重寫商業軟體了,現在做軟體外快的人太多了,拿公司軟體稍微改改,時間用不了多少,費用也不高,幾千吧

『肆』 如何查看linux下串口是否可用串口名稱等

1、查看串口是否可用,可以對串口發送數據比如對com1口,echo lyjie126 > /dev/ttyS0

2、查看串口名稱使用 ls -l /dev/ttyS* 一般情況下串口的名稱全部在dev下面,如果你沒有外插串口卡的話默認是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;

3、查看串口驅動:cat /proc/tty/drivers/serial

4、查看串口設備:dmesg | grep ttyS*

(4)串口命令解析擴展閱讀

介面劃分標准

同步串列介面(英文:SynchronousSerialInterface,SSI)是一種常用的工業用通信介面。。

非同步串列是指UART(Universal Asynchronous Receiver/Transmitter),通用非同步接收/發送。UART是一個並行輸入成為串列輸出的晶元,通常集成在主板上。UART包含TTL電平的串口和RS232電平的串口。 TTL電平是3.3V的,而RS232是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平,MDS2710、MDS SD4、EL805等是RS232介面,EL806有TTL介面。

串列介面按電氣標准及協議來分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標准只對介面的電氣特性做出規定,不涉及接插件、電纜或協議。

閱讀全文

與串口命令解析相關的資料

熱點內容
安卓數據線介面顏色代表什麼 瀏覽:151
一門兩個加密鎖 瀏覽:917
一部小說講的是去鄉下支教 瀏覽:471
演算法英文單詞 瀏覽:917
linuxhttpd配置文件 瀏覽:377
什麼電影陳寶蓮在廁所強奸 瀏覽:586
韓劇中小女孩奶奶是葯店工作 瀏覽:678
男女生抱著看電影 瀏覽:489
手機銀行app利率是什麼意思 瀏覽:209
博途scl編譯信號或精度丟失 瀏覽:631
靜態編譯失敗的原因 瀏覽:234
西安人社app為什麼注冊不了 瀏覽:25
linux下root密碼修改 瀏覽:700
蘋果11watchapp有什麼用 瀏覽:472
linux文件系統集群 瀏覽:748
大奧電視劇觀看順序 瀏覽:478
深圳程序員真實工資是多少 瀏覽:517
androidgetbytes 瀏覽:706
爭鳴pdf 瀏覽:968
飢荒聯機版如何直連伺服器 瀏覽:121