資源簡介
簡單的串口通信,實現了基本的功能:收發16進制,自動發送,清除接收框等
另附有串口助手與虛擬串口軟件

代碼片段和文件信息
#include?“datadeal.h“
#include?
//將1-9?a-f字符轉化為對應的整數
?char?ConvertHexChar(char?ch)
????{
????????if((ch?>=?‘0‘)?&&?(ch?<=?‘9‘))
????????????return?ch-0x30;
????????else?if((ch?>=?‘A‘)?&&?(ch?<=?‘F‘))
????????????return?ch-‘A‘+10;
????????else?if((ch?>=?‘a‘)?&&?(ch?<=?‘f‘))
????????????return?ch-‘a‘+10;
????????else?return?(-1);
????}
//將字符型進制轉化為16進制
?QByteArray?QString2Hex(QString?str)
????{
????????QByteArray?senddata;
????????int?hexdatalowhexdata;
????????int?hexdatalen?=?0;
????????int?len?=?str.length();
????????senddata.resize(len/2);
????????char?lstrhstr;
????????for(int?i=0;?i ????????{
????????????hstr=str[i].toLatin1();???//字符型
????????????if(hstr?==?‘?‘)
????????????{
????????????????i++;
????????????????continue;
????????????}
????????????i++;
????????????if(i?>=?len)
????????????????break;
????????????lstr?=?str[i].toLatin1();
????????????hexdata?=?ConvertHexChar(hstr);
????????????lowhexdata?=?ConvertHexChar(lstr);
????????????if((hexdata?==?16)?||?(lowhexdata?==?16))
????????????????break;
????????????else
????????????????hexdata?=?hexdata*16+lowhexdata;
????????????i++;
????????????senddata[hexdatalen]?=?(char)hexdata;
????????????hexdatalen++;
????????}
????????senddata.resize(hexdatalen);
????????return?senddata;
????}
//將接收的一串QByteArray類型的16進制轉化為對應的字符串16進制
?QString?ShowHex(QByteArray?str)
?{
?????QDataStream?out(&strQIODevice::ReadWrite);???//將str的數據?讀到out里面去
?????QString?buf;
?????while(!out.atEnd())
?????{
???????????qint8?outChar?=?0;
???????????out?>>?outChar;???//每次一個字節的填充到?outchar
???????????QString?str?=?QString(“%1“).arg(outChar&0xFF216QLatin1Char(‘0‘)).toUpper()?+?QString(“?“);???//2?字符寬度
???????????buf?+=?str;
?????}
?????return?buf;
?}
//將接收的一串QByteArray類型的16進制每2個16進制轉化為1個字的16進制的字符串
?QString?Convert4Hex(QByteArray?str)
?{
?????QDataStream?out(&strQIODevice::ReadWrite);???//將str的數據?讀到out里面去
?????QString?buf;
?????while(!out.atEnd())
?????{
???????????qint16?outChar?=?0;
???????????out>>outChar;???//每次一個字節的填充到?outchar
???????????QString?str?=?QString(“%1“).arg(outChar&0xFFFF416QLatin1Char(‘0‘)).toUpper()?+?QString(“?“);???//2?字符寬度
???????????buf?+=?str;
?????}
?????return?buf;
?}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????34??2013-11-27?17:20??config.ini
?????文件????2142208??2013-11-28?16:53??SerialDebug.exe
?????文件???????1794??2012-09-21?13:40??使用說明.txt
?????文件????????191??2012-09-21?13:40??當下軟件園.url
-----------?---------??----------?-----??----
??????????????2144227????????????????????4
評論
共有 條評論