|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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 |
請(qǐng)教msp430系列單片機(jī)的一些問(wèn)題 |
| 作者:adming 欄目:單片機(jī) |
MSP430是一個(gè)16位的單片機(jī),它是怎么來(lái)接收32位的數(shù)據(jù)的。小弟愚昧,找了半天資料,也沒(méi)弄明白,還望高手指教。 |
| 2樓: | >>參與討論 |
| 作者: 李冬發(fā) 于 2006/11/7 22:22:00 發(fā)布:
從什么地方接收數(shù)據(jù)? 串口是8bit的,分4個(gè)字節(jié)接收。IO口是8bit或16bit |
|
| 3樓: | >>參與討論 |
| 作者: adming 于 2006/11/8 11:29:00 發(fā)布:
從串口輸入 我用的是MSP430F2013 我想用430來(lái)接收32位的數(shù)據(jù)(浮點(diǎn)數(shù),16整數(shù),16位小數(shù)) 我想知道他是怎么存儲(chǔ)這些數(shù)據(jù)的,如果是分4個(gè)字節(jié)接收,那么這個(gè)數(shù)要放在 兩個(gè)地址上,我要對(duì)這些數(shù)據(jù)進(jìn)行處理的話,是不是還要進(jìn)行兩次運(yùn)算(整數(shù)部分一次,小數(shù)部分一次)這樣的話我得到的結(jié)果是不是也需要兩次才能輸出完成。 如果用I/O口的話要怎么來(lái)理解? 小弟初學(xué)單片機(jī),不懂得東西太多 還望大蝦,多多指教。 先謝謝“李冬發(fā)”了 |
|
| 4樓: | >>參與討論 |
| 作者: mohanwei 于 2006/11/8 12:11:00 發(fā)布:
用union,float和uchar數(shù)組構(gòu)成一個(gè)union 如果不想太規(guī)范,還可以直接用指針,呵呵 |
|
| 5樓: | >>參與討論 |
| 作者: mohanwei 于 2006/11/8 12:16:00 發(fā)布:
如果資源充足,也可以用字符傳輸…… float-->ascii數(shù)組--->發(fā)送.............接收-->ascii數(shù)組-->用atof函數(shù)轉(zhuǎn)為float 其它的,int型提取用atoi函數(shù) LONG型提取用atol …… 這種方法雖然占用資源,但是通信數(shù)據(jù)格式統(tǒng)一,直觀,用串口助手調(diào)試方便。 |
|
| 6樓: | >>參與討論 |
| 作者: adming 于 2006/11/8 16:56:00 發(fā)布:
謝謝,樓上的大蝦 |
|
| 7樓: | >>參與討論 |
| 作者: adming 于 2006/11/8 17:47:00 發(fā)布:
再次感謝 mohanwei 的意思是進(jìn)行強(qiáng)制類型轉(zhuǎn)化吧?這樣的話最后收到的數(shù)據(jù)還是16位的吧?那么測(cè)量精度不是下來(lái)了嗎?能說(shuō)得具體一點(diǎn)嗎? |
|
| 8樓: | >>參與討論 |
| 作者: mohanwei 于 2006/11/9 10:24:00 發(fā)布:
不是書(shū)上講的那種“類型轉(zhuǎn)化”…… 這種只是進(jìn)制和表示方法轉(zhuǎn)換,不會(huì)降低(當(dāng)然也不會(huì)提高)精度的。 舉例:15可以表示為十六進(jìn)制數(shù):0xff,也可以表示為十進(jìn)制數(shù):15,這兩者是等價(jià)的。 傳輸之前先用sprintf()函數(shù)將變量(int,LONG,float等等)轉(zhuǎn)換為ascii字符數(shù)組,然后發(fā)送這個(gè)數(shù)組。接收方再把接收到的數(shù)組用atoi,atol,atof等函數(shù)重新轉(zhuǎn)換為變量就可以了。 |
|
| 9樓: | >>參與討論 |
| 作者: mohanwei 于 2006/11/9 10:31:00 發(fā)布:
而用指針或者union的話 代碼要少的多。 比如說(shuō)float,它在C51里用4個(gè)連續(xù)字節(jié)來(lái)存放(也就是32位)。所以,你也可以在傳輸?shù)臅r(shí)候把它當(dāng)成一個(gè)長(zhǎng)度為4,首地址和float變量地址重合的數(shù)組(明白了吧^_^)。傳送的時(shí)候你可以不管float的值是什么,只需要把它當(dāng)成一個(gè)數(shù)組,從這邊拷貝到那邊,并按照原來(lái)的順序排列就可以了(絕對(duì)不會(huì)有精度的損失)。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |