|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
串口發(fā)送數(shù)據(jù)的問題,高手救我呀... |
| 作者:xfguo 欄目:單片機(jī) |
89C51的片子,通過MAX232發(fā)送到PC,發(fā)字符好說,但要是整型數(shù)呢?怎么寫SBUF? 用C語言中的itoa還是sprintf函數(shù)?庫里好象沒有itoa(),但用sprint老出錯(cuò)!!! 三天了,我都要崩潰了,是不是我不適合學(xué)單片機(jī)呀??高手救命>>>..>> 單片機(jī)還是要學(xué)的,所以問題還是要問的,請問,C語言編程需要考慮硬件存儲(chǔ)嗎 ??怎么考慮?書上的都不清楚. 高手教教我吧!!!!!! |
| 2樓: | >>參與討論 |
| 作者: chenyg69 于 2005/8/2 14:20:00 發(fā)布:
先轉(zhuǎn)換后發(fā)送 串口通訊要首先搞明白通訊協(xié)議,也就是發(fā)送方發(fā)送的數(shù)據(jù)接收方能夠處理,雙方達(dá)成一致。再下來發(fā)送方先組織好自己的數(shù)據(jù),最后發(fā)送。從你的帖子看,你希望使用ascii碼發(fā)送,那么一個(gè)51系統(tǒng)的整型要占用4byte,轉(zhuǎn)換麻煩,發(fā)送慢,不如直接發(fā)送,(當(dāng)然接收端也要同樣處理)。51是小端機(jī)模式,PC是大端機(jī)模式,51發(fā)送的整型在PC端需要調(diào)整字節(jié)順序,然后作為短整型使用。如需轉(zhuǎn)換成ascii碼,可在PC端轉(zhuǎn)換,效果要好得多。 |
|
| 3樓: | >>參與討論 |
| 作者: wenfuguang 于 2005/8/3 8:56:00 發(fā)布:
整型數(shù)據(jù)直接發(fā)送 整型數(shù)據(jù)不是更好發(fā)送嗎?直接發(fā)送16進(jìn)制數(shù)據(jù)就行了,還不用數(shù)據(jù)轉(zhuǎn)換 |
|
| 4樓: | >>參與討論 |
| 作者: lws 于 2005/8/3 9:19:00 發(fā)布:
單片機(jī)發(fā)什么數(shù)都一樣,你搞復(fù)雜了 SBUF就是一寄存器,它可不管你發(fā)的是ASCII,還是16進(jìn)制,主要是看你的上位機(jī)是怎么解釋的. ------C語言編程需要考慮硬件存儲(chǔ)嗎? :這兩者沒什么聯(lián)系. |
|
| 5樓: | >>參與討論 |
| 作者: tanjinhui 于 2005/8/4 10:19:00 發(fā)布:
自己編程實(shí)現(xiàn) 89C51單片機(jī)是8位的 所以對數(shù)據(jù)的處理都以字節(jié)為單位 你用串口發(fā)的數(shù)據(jù)也只能是8位 至于你要使用整形數(shù) 你必須自己編程序?qū)崿F(xiàn) 你的整形數(shù)也是分成兩個(gè)字節(jié)的 你必須自己約定怎么表示 單片機(jī)是不認(rèn)識(shí)的 c里的很多指令是不適合單片機(jī)的 比如你用的prinf 不會(huì)被正確編譯 總之,你必須自己從最底層做起 建議你買一本北航出的 <單片機(jī)的c語言應(yīng)用程序設(shè)計(jì)> 馬忠梅等編 剛才收到你的消息 不知我的回答是否晚了 呵呵 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào) |