RS232 傳輸問題
各位前輩,我第一次寫Arduino程式,遇到一個問題我的架構大概是這樣
Arduino uno Selection Valve
RX + TX
TX RX
程式語言是下方
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);//記得要設定鮑率
}
void loop()
{
// put your main code here, to run repeatedly:
int list={0,0x0E,'P',2,0,1};//開始.Address_W.Command.Command Value.檢查位元.停止
int j;
for(j=0;j<4;j++)
{
Serial.print(list);
Serial.print(" ");//空格
}
Serial.println("");//換列
while(true);//控制不會無限迴圈
}
int list={0,0x0E,'P',2,0,1};//開始.Address_W.Command.Command Value.檢查位元.停止
我利用陣列方式傳輸寫入的指令,之後直接下Commad與閥門轉到哪個位置的 Command Value
卻一直無法將選擇閥門轉動,可否各位前輩給我一些建議
說明書寫的是用 I2C, 但你用的是 UART? 我記錯檔案了
我改寫成這樣
#include <Wire.h>// Comes with Arduino IDE
void setup() {
Serial.begin(19200);
Serial.flush();
}
void loop() {
char A={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A,5);
while(true);//控制不會無限迴圈
}
還是無法動作
可以給一些建議嗎??
除了多送一個 BYTE, 沒看有什麼問題
char A={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A,4);
如果還不行, 也許是 BUAD RATE 被改掉, 或是 RX TX 顛倒
BUAD RATE 只有4 種, 每個都試看看
9600, 19200, 38400, 57600
另外. 上面沒寫很清楚... 但還是問一下
"應該有共地吧?"
超新手 發表於 2019-11-14 12:17
除了多送一個 BYTE, 沒看有什麼問題
char A={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A,4);
謝謝您的回覆,共地一定是有的
但修改後一樣無法動作,也嘗試更改兩邊的電路板,一樣無法動作
上次說的連接方式,忘記補上一顆IC TRS3232
Arduino uno TRS3232 Selection Valve
RX +RS232 TX (Pin 14)+UART TX (Pin 11)
TX +RS232 RX (Pin 13)+UART RX (Pin 12) RX +RS232 TX (Pin 14)+UART TX (Pin 11)
TX +RS232 RX (Pin 13)+UART RX (Pin 12)
看不懂這樣的表示方法?
UNO 出來的是 UART, 怎麼會接 RS232?
接法應該是
ARDUINO RX(0), 不是接 PIN 9 就是 12(ROUT?)
ARDUINO TX(1), 不是接 PIN 10 就是 11(DIN?)
而且對方也是 UART, 為什麼需要TRS3232
如果需要傳很遠, 那中間需要兩顆 TRS3232 才對吧? ARDUINO RX(0), 不是接 PIN 9 就是 12(ROUT?)
ARDUINO TX(1), 不是接 PIN 10 就是 11(DIN?)
這的確是我寫錯了
如您所說的,前人設計擔心距離的關係,增加mp243ei + TRS3232
因此我直接朓腺做測試是可以動作的
謝謝您
頁:
[1]