最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù)的方法

 更新時間:2019年01月14日 08:38:10   作者:Timmy_Y  
這篇文章主要為大家詳細(xì)介紹了MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下

MFC串口通信會使用m_mscomm控件。

發(fā)送數(shù)據(jù)一般是在edit control 里輸入自己想發(fā)送的內(nèi)容,然后點(diǎn)擊send button。

如果直接發(fā)送字符串內(nèi)容,通過下面代碼(send button內(nèi)寫入)即可:

UpdateData(true); //讀取編輯框內(nèi)容 
m_mscomm.put_Output(COleVariant(m_EditSend)); 
m_EditSend.Empty(); //發(fā)送后清空輸入框 
UpdateData(false); //更新編輯框內(nèi)容 

但是這樣發(fā)送的是字符串內(nèi)容,而串口通信常常需要發(fā)送16進(jìn)制數(shù)據(jù),接收端直接按HEX格式接收就可以了,不用再進(jìn)行字符串轉(zhuǎn)HEX。因此最好在發(fā)送端就將字符串轉(zhuǎn)成16進(jìn)制數(shù)據(jù)發(fā)送,下面代碼即可實(shí)現(xiàn)該功能:

(1)send button

CByteArray HexDataBuf;
 int i = 0;
 BYTE SendBuf[128]={0};
 BYTE GetData[256]={0};
 int SendLen = 0;
 int GetLen = 0;
 
 UpdateData(TRUE);//獲取編輯框內(nèi)容
 if(m_EditSend.IsEmpty())
 {
  AfxMessageBox(_T("發(fā)送數(shù)據(jù)為空!"));
  return;
 }
 HexDataBuf.RemoveAll();    //清空數(shù)組 
 
 GetLen = m_EditSend.GetLength();
 for(i=0; i<GetLen; i++)
 {
  GetData[i] = (BYTE)m_EditSend.GetBuffer()[i];
 }
 StringtoHex(GetData, GetLen, SendBuf, &SendLen);//將字符串轉(zhuǎn)化為字節(jié)數(shù)據(jù)
 
 HexDataBuf.SetSize(SendLen);   //設(shè)置數(shù)組大小為幀長度 
 for(i=0; i<SendLen; i++)
 {
  HexDataBuf.SetAt(i,SendBuf[i]);
 }
 m_mscomm.put_Output(COleVariant(HexDataBuf)); //發(fā)送十六進(jìn)制數(shù)據(jù)
 
 UpdateData(false); //更新編輯框內(nèi)容

(2)stringtoHex函數(shù)

void StringtoHex(BYTE *GB, int glen, BYTE* SB, int* slen)
{
 int i; //遍歷輸入的字符串
 int a = 0; 
 char temp; //接收字符,用來判斷是否為空格,若是則跳過
 char temp1,temp2; //接收一個字節(jié)的兩個字符 例如EB,則temp1='E',temp2 = 'B'
 *slen = 0; //輸出的16進(jìn)制字符串長度
 for(i=0;i<glen;i++)
 {
 temp = GB[i];
 if(temp==' ')
 continue;
 
 if(a == 0)
  temp1 = GB[i];
 if(a == 1)
  temp2 = GB[i];
 a++;
 
 if(a==2)
 {
  a = 0;
  temp1 = temp1 - '0';
  if (temp1>10)
  temp1 = temp1 -7;
  temp2 = temp2 - '0';
  if (temp2>10)
  temp2 = temp2 -7;
 
 SB[*slen] = temp1*16+temp2;
  (*slen)++;
 }
 }
 
 }

通過以上代碼即可發(fā)送16進(jìn)制數(shù)據(jù),如下圖是用串口調(diào)試工具的仿真結(jié)果,發(fā)送數(shù)據(jù)字節(jié)之間是否存在空格對結(jié)果沒有影響。

另外,在數(shù)據(jù)發(fā)送中用到了CByteArray類,這是一種支持字節(jié)的動態(tài)數(shù)組,詳情可在MSDN上查詢。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中COM組件初始化方法實(shí)例分析

    C++中COM組件初始化方法實(shí)例分析

    這篇文章主要介紹了C++中COM組件初始化方法,涉及C++中COM組件的使用技巧,需要的朋友可以參考下
    2015-05-05
  • C++實(shí)現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼

    C++實(shí)現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼

    這篇文章主要介紹了C++實(shí)現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C++語言實(shí)現(xiàn)hash表詳解及實(shí)例代碼

    C++語言實(shí)現(xiàn)hash表詳解及實(shí)例代碼

    這篇文章主要介紹了C++語言實(shí)現(xiàn)hash表詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C語言實(shí)現(xiàn)中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式

    C語言實(shí)現(xiàn)中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)

    C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)

    這篇文章主要介紹了C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言自定義類型全解析

    C語言自定義類型全解析

    在C語言中自定義類型主要有結(jié)構(gòu)體類型、位段、枚舉類型、聯(lián)合體類型,自定義類型是面試常會碰到的內(nèi)容,今天我們來詳細(xì)了解一下它
    2022-02-02
  • C++關(guān)于字符的接收與輸出操作示例

    C++關(guān)于字符的接收與輸出操作示例

    這篇文章主要介紹了C++關(guān)于字符的接收與輸出操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • C/C++實(shí)現(xiàn)線性單鏈表的示例代碼

    C/C++實(shí)現(xiàn)線性單鏈表的示例代碼

    使用鏈存儲結(jié)構(gòu)的線性存儲結(jié)構(gòu)為線性單鏈表,本文將分別利用C語言和C++實(shí)現(xiàn)線性單鏈表,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Qt之使用GraphicsView框架實(shí)現(xiàn)思維導(dǎo)圖的示例

    Qt之使用GraphicsView框架實(shí)現(xiàn)思維導(dǎo)圖的示例

    思維導(dǎo)圖可以更方便的整理知識,本文主要介紹了Qt之使用GraphicsView框架實(shí)現(xiàn)思維導(dǎo)圖的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++實(shí)現(xiàn)哈夫曼樹編碼解碼

    C++實(shí)現(xiàn)哈夫曼樹編碼解碼

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)哈夫曼樹編碼解碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

含山县| 邢台县| 孟村| 义乌市| 莱芜市| 永丰县| 莱阳市| 镇平县| 梅河口市| 柘荣县| 阳江市| 开化县| 依安县| 库伦旗| 陵水| 兴仁县| 浮梁县| 中西区| 宝鸡市| 大方县| 汤原县| 凌云县| 普宁市| 托克托县| 同仁县| 泰和县| 乐都县| 滨海县| 贵阳市| 普洱| 辉县市| 绥江县| 盱眙县| 建始县| 台中市| 年辖:市辖区| 会昌县| 若尔盖县| 陆丰市| 张掖市| 开化县|