資源簡介
簡單的串口通信,實(shí)現(xiàn)了基本的功能:收發(fā)16進(jìn)制,自動(dòng)發(fā)送,清除接收框等
另附有串口助手與虛擬串口軟件

代碼片段和文件信息
#include?“datadeal.h“
#include?
//將1-9?a-f字符轉(zhuǎn)化為對(duì)應(yīng)的整數(shù)
?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ǎn)‘)?&&?(ch?<=?‘f‘))
????????????return?ch-‘a(chǎn)‘+10;
????????else?return?(-1);
????}
//將字符型進(jìn)制轉(zhuǎn)化為16進(jìn)制
?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進(jìn)制轉(zhuǎn)化為對(duì)應(yīng)的字符串16進(jìn)制
?QString?ShowHex(QByteArray?str)
?{
?????QDataStream?out(&strQIODevice::ReadWrite);???//將str的數(shù)據(jù)?讀到out里面去
?????QString?buf;
?????while(!out.atEnd())
?????{
???????????qint8?outChar?=?0;
???????????out?>>?outChar;???//每次一個(gè)字節(jié)的填充到?outchar
???????????QString?str?=?QString(“%1“).arg(outChar&0xFF216QLatin1Char(‘0‘)).toUpper()?+?QString(“?“);???//2?字符寬度
???????????buf?+=?str;
?????}
?????return?buf;
?}
//將接收的一串QByteArray類型的16進(jìn)制每2個(gè)16進(jìn)制轉(zhuǎn)化為1個(gè)字的16進(jìn)制的字符串
?QString?Convert4Hex(QByteArray?str)
?{
?????QDataStream?out(&strQIODevice::ReadWrite);???//將str的數(shù)據(jù)?讀到out里面去
?????QString?buf;
?????while(!out.atEnd())
?????{
???????????qint16?outChar?=?0;
???????????out>>outChar;???//每次一個(gè)字節(jié)的填充到?outchar
???????????QString?str?=?QString(“%1“).arg(outChar&0xFFFF416QLatin1Char(‘0‘)).toUpper()?+?QString(“?“);???//2?字符寬度
???????????buf?+=?str;
?????}
?????return?buf;
?}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????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??當(dāng)下軟件園.url
-----------?---------??----------?-----??----
??????????????2144227????????????????????4
評(píng)論
共有 條評(píng)論