Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 8337|回復: 4
打印 上一主題 下一主題

請問關於Arduino與RS232的運用

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-20 03:20:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問各位大大
我想經由Arduino來發送和接收RS232的命令
在網路上我已經找到有人已經做出來

http://arduino.cc/en/Reference/SoftwareSerial
這邊有一些介紹

但是我看完後還是有一些疑問
我請教各位大大的是
在這邊
http://www.arduino.cc/en/Tutorial/SoftwareSerial
有提供Arduino與RS232的實作
在Arduino程式中
一開始的
#define bit9600Delay 84  
#define halfBit9600Delay 42
#define bit4800Delay 188
#define halfBit4800Delay 94
#.....................

這邊我不太懂他的意思
這後面的84、42、188、94是甚麼意思?

另外,
我還有看到他說

LimitationsBecause it's not supported by hardware, the library has a few limitations:
  • Only speeds up to 9600 baud work
  • Serial.available() doesn't work
  • Serial.read() will wait until data arrives
  • Only data received while Serial.read() is being called will bereceived. Data received at other times will be lost, since the chip isnot "listening".

這上面是不是說我RS232的鮑率最高只能到9600呢?
還有,有關於其它的限制我也不太懂
可否請大大為小弟我說明一下
先謝了~
2#
發表於 2009-9-20 12:12:30 | 只看該作者
LimitationsBecause it's not supported by hardware, the library has a few limitations:
Only speeds up to 9600 baud work , 因為一些限制的關係, 只能到9600
Serial.available() doesn't work 這個指令不能執行
Serial.read() will wait until data arrives 這個指令會呆住直到有資料過來, 所以最好用執行緒包起來

Only data received while Serial.read() is being called will bereceived. Data received at
other times will be lost, since the chip isnot "listening".
只有呼叫Serial.read() 才能真的接到資料, 但沒呼叫的時候, 並沒有緩衝區去暫存資料
這會導致資料一直過來, 卻沒呼叫指令去接, 資料會消失不見
主要是因為晶片沒有實做類似winsock那種listening 的動作, 這部分要自己實做
3#
 樓主| 發表於 2009-9-20 19:16:25 | 只看該作者
哇...是喔 只能到9600....
那是為什麼呢?
是硬體上面的關係嗎?
如果用8051做類似的事情的話
也會有此限制嗎?
可否請大大再幫我做進一步的解釋
感謝您了~~
4#
發表於 2009-9-22 22:48:10 | 只看該作者
我不會8051, 只知道皮毛哩
無法幫上忙
我自己做機器人用的是arduino + 嵌入式單版
5#
發表於 2009-9-22 23:09:29 | 只看該作者
哇...是喔 只能到9600....
那是為什麼呢?
是硬體上面的關係嗎?
如果用8051做類似的事情的話
也會有此限制嗎?
可否請大大再幫我做進一步的解釋
感謝您了~~
weiooooo 發表於 2009-9-20 19:16


沒有為什麼,設計就是如此。並不是硬體上的問題。沒記錯的話。arduino用的是AVR的晶片,要超過9600bps也不是問題。這個限制是由於軟體端為了讓不懂單晶片的人也能玩單晶片系統。軟體設計上疊床架屋,對於單晶片常見的中斷系統也不支援。所以限制比較多。

8051的UART可以用中斷系統處理。能不能跑更快的速度?視時脈而定,一般來說比9600快是沒問題的。但是說實話,除非你用變種51,不然傳統的51、52要玩的話,用的空間也不多。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-5 06:04 , Processed in 0.218624 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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