Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz

【Arduino】序列埠速度問題

查看數: 2786 | 評論數: 7 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發佈時間: 2016-5-6 12:15

正文摘要:

本帖最後由 mazda770 於 2016-5-6 12:29 編輯 目前如果我的baud rate設定為38400我寫一個迴圈計時器(利用micros函數)並且在程式端 float Sampling_time; void loop() { println(Sampling_time); } 序列埠輸出圖 ...

回復

mazda770 發表於 2016-5-6 16:50:30
感謝您的回答~
超新手 發表於 2016-5-6 14:07:45
本帖最後由 超新手 於 2016-5-6 14:14 編輯

傳輸的方法是你自己寫的
你想用什麼方式是你自己決定的
你把程式
Serial.println(Sampling_time);
改成
Serial.write((char *)&Sampling_time, 4);
應該就可以了, 就是你要的4 個 BYTES
只是顯示的值是亂碼(或看不見), 但是只要接收端看的懂就好了
mazda770 發表於 2016-5-6 13:53:11
以及如果我使用rs232或485作資料傳輸,一樣存在鮑率的限制,假設我要傳一個浮點數資料,他傳輸的過程的字元數是怎麼算的呢?也是字元或其他進位制嘛
mazda770 發表於 2016-5-6 13:50:27
高手~
可以再跟您請教幾個問題嘛!   
1.如果今天電腦不跟arduino作溝通,這樣取樣頻率就可能可以到10k hz以上了?如果用示波器看的話!
超新手 發表於 2016-5-6 12:50:35
本帖最後由 超新手 於 2016-5-6 12:57 編輯

你自己寫的 println, 已經把浮點數轉為字串
所以你才有辦法看懂
如果是傳binary, 應該是亂碼
所以是 0.0023\n\r 8 個bytes(加換行, 回車)
因為一個 byte 是 1 start+8data+1stop= 10 bits
所以是 80 bits
mazda770 發表於 2016-5-6 12:40:11
大大請問一下為什麼是  (8+2)*8 呢
我的認知是:
如果宣告的是float不是只有4byte的記憶空間也就是32位元
加上起始即收尾  32+2

麻煩您解釋摟
超新手 發表於 2016-5-6 12:36:08
應該是((8+2)*8)/38400=0.002083333
還蠻接近的....

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-22 18:42 , Processed in 0.207943 second(s), 11 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表