robot2009 發表於 2010-1-26 18:42:21

[請益]RS-232:BS2接收問題

本帖最後由 robot2009 於 2010-1-26 18:43 編輯

以下程式就是要從人機端送值給bs2 ,bs2收到值後後把sData內所存到的值拿來做LED是否亮起!!

請問要從人機端下值給BS2我在人機端傳給他的值是0x33這樣的

BS2上他sData 到底是接收什值? 原本是想說SERIN 14, 16468, [DEC sData]就值接把收到的值 直接轉成10進制 在拿它來做IF ELSE 的判斷.

ps.bs2上IF ( sData> 0 )THEN HIGH 15
       sData>0 那個0指的是十進制沒錯八?

想請問人機端應該要傳什麼值? 目傳人機端是給它 一個 buffer,   Send = 0x33;
而BS2端我下面這樣設定對嗎?!


' {$STAMP BS2}
' {$PBASIC 2.5}
sData   VAR   Byte

Main:
DO
SERIN 14, 16468,                      ' baudmode set for BS2
DEBUGsData

IF ( sData> 0 )THEN
HIGH 15
ELSEIF ( sData<3) THEN
LOW 15
ENDIF


LOOP
END

miaoichi 發表於 2010-1-27 12:39:31

本帖最後由 miaoichi 於 2010-1-27 12:43 編輯

人機端傳給他的值是0x33
BS2上他sData 到底是接收什值->就是0x33

你在ap上給他 1->ascii是 33 ->所以硬體也會看到 0x33 -> 你就要用ascii來判斷
或者是你可以去做一個修正 sData =sData -32 -> 這就會是你要的數字了

Main:
DO
SERIN 14, 16468,                      ' baudmode set for BS2
DEBUGsData

IF ( sData> 0x33 )THEN
HIGH 15
ELSEIF ( sData<0x36) THEN
LOW 15
ENDIF


LOOP
END

mzw2008 發表於 2010-1-27 12:45:35

十進制通常是直接寫
十六進制的話得在前面加0X33
不過basic stamp的十進制前面要不要加dec 開頭,這就得注意一下指令規格了

robot2009 發表於 2010-1-29 11:46:29

Q1.   0x33    BS2是不是看不懂阿?!

在人機端這邊 給他 0x33 應該是代表十進制的51八?!

我發現如果這樣弄好像會爆掉...因為ASCII只到7F 十進制的值相對也只到127~

如果我是弄超音波不就最遠能判斷的值只到127公分!!

Q.如果我只是要把電腦端的所偵測到的十進制值,回傳給BS2 然後在BS2端寫死馬達程式,也就是LOW與HIGH 來控制馬達(馬達是用另一塊PIC所寫,因此只要能成功在BS2端都到一個能讓BS2所判斷的值,就可驅動馬達了),BS2能否直接接收?!!

#目前以經可以把SENSOR的值傳給PC 在PC端,如果測到221公分那PC端就是真的收到221公分
   不是"2" "2" "1" 這樣分開的.

#我只是想把我所偵測到的值丟回給BS2 因此我用16進制,不就會因此而爆掉?(因為16進制去對應在ASCII上只能對到127)

mzw2008 發表於 2010-1-29 14:57:05

Q1 :
那得看你宣告甚麼型別
BS應有型別可以容下超過127的, like int or something...
最適合應是byte陣列
原廠文件應該有, 我的BS已經賣掉, 目前沒辦法幫忙測

Q2:當然可以...只是serialIn /serialOut的問題而已

miaoichi 發表於 2010-1-30 00:37:05

十六進位要用 &H01 之類的~~~

robot2009 發表於 2010-2-2 13:47:19

本帖最後由 robot2009 於 2010-2-2 13:51 編輯

miaoichi 大大 我剛剛看了一下你說什過去他他就會收什!?

也就是說人機端傳給他的值是150(十進制沒錯八?!)

BS2上他sData 到底是接收什值->就是150摟?

因為我一直不能確定到底他是收到什麼值?

而我剛剛才發現 我插在搭載板上的RS232 他會接收到超音波抓到的值 在傳給PC端 這時後他是使用了

BS2上面SIN(也就是RS232的Pin3)(傳送端)

那也就是說BS2上的SOUT(也就是BS2的接收端)

那我要接收SERIN ?, 16468, (問號的地方 腳位要給多少呢?)

我想這應該是我不送資料給BS2的原因八?!

ps.如果單純看 SERIN ?, 16468, 就是說透過?號角位 把值丟進

    那這樣在bs2內把sData拿來做判斷對八?!
頁: [1]
查看完整版本: [請益]RS-232:BS2接收問題