全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1263
推到 Plurk!
推到 Facebook!

[問題]writefile寫入值變成'楇略....'

尚未結案
sunnyday_dodo
一般會員


發表:7
回覆:4
積分:2
註冊:2004-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-12 23:44:54 IP:211.76.xxx.xxx 未訂閱
請問各位前輩: 為何我用writefile寫入值透過rs232 會收到亂碼咧~ typedef struct { BYTE c; BYTE d; }A; char *b; A a; a.c = 0x04; a.d = 0xeb; b=(char*)&a; writefile(hnd,b,sizeof(a),&dwbyte,null); 結果用rs232 測試軟體去測竟收到亂碼???? 0x04不會收到亂碼會被轉成ascii 而0xeb就會是怪怪的字咧~ 請各位賜教感激
李國維
高階會員


發表:42
回覆:287
積分:235
註冊:2003-02-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-13 00:40:46 IP:220.130.xxx.xxx 未訂閱
sunnyday_dodo: 基本上ASCII 分成兩個區域,0x00 到 0x1F 給控制字元用,共 32 個位置。 0x20 到 0x7F 給一般的圖形字元用(大小寫英文、數字和符號), 有 94 個位置,0x20 和 0x7F 分別是 SPACE 和 DELETE, ASCII 總共是 128 個位置. 如果你想要傳的是中文字的話你要改成Unicode.
sunnyday_dodo
一般會員


發表:7
回覆:4
積分:2
註冊:2004-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-13 09:21:43 IP:218.163.xxx.xxx 未訂閱
謝謝您的回答~ 我是想要傳送十六進位數值資料過去 例:BE EF 1 9 A2 ........ 這是應該收到的資料 可以傳送數值嗎~~~各個值以1BYTE表示
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-13 11:07:44 IP:61.66.xxx.xxx 未訂閱
引言: 我是想要傳送十六進位數值資料過去 例:BE EF 1 9 A2 ........ 這是應該收到的資料 可以傳送數值嗎~~~各個值以1BYTE表示
基本上,RS232是Serial傳輸,也就是一個一個BYTE的傳輸 所以你說要傳十六進位的資料,這當然可以 傳過去的資料是以一個BYTE為單位 所以你要當作八個BITS或二個HEX都是同一件事,只是看事情的角度不同罷了
系統時間:2024-04-30 3:01:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!