第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Arduino 可以從控制臺(tái)讀取字節(jié),但不能從 java

Arduino 可以從控制臺(tái)讀取字節(jié),但不能從 java

拉丁的傳說 2022-10-26 16:22:55
我想從 Java 程序接收 Arduino Uno 上的多個(gè)字節(jié)。arduino 收到數(shù)據(jù)后會(huì)立即處理,因此我不需要存儲(chǔ)它,我使用串行 RX 緩沖區(qū)作為臨時(shí)存儲(chǔ),直到我真正讀取字節(jié)。完全實(shí)現(xiàn)后,每次將發(fā)送大約 150 個(gè)字節(jié),但我已經(jīng)修改了緩沖區(qū)大小以解決這個(gè)問題。我使用 jSerialComm 作為我的 java 串行庫(kù)我在下面放了一些 arduino 和 java 代碼。當(dāng)我從 IDE 的串行監(jiān)視器發(fā)送字節(jié)時(shí),arduino 代碼可以完美運(yùn)行,按預(yù)期點(diǎn)亮 LED。但是,一旦我嘗試使用 java 代碼發(fā)送字節(jié),RX 板載 LED 就會(huì)閃爍,但黃色 LED 永遠(yuǎn)不會(huì)亮起,并且 ExecuteMove() 不會(huì)觸發(fā)。我試圖在嘗試關(guān)閉端口之前放置一個(gè) Thread.sleep() ,但這無濟(jì)于事。阿杜諾int GREEN = 4;int BLUE = 3;int YELLOW = 2;void setup() {  pinMode(GREEN, OUTPUT);  pinMode(BLUE, OUTPUT);  pinMode(YELLOW, OUTPUT);  Serial.begin(9600);}void loop() {  byte rb = Serial.read();  if(rb != 255){ //Documentation says it sould be -1, but I'v tested it and                    it's 255    digitalWrite(YELLOW, HIGH);    ExecuteMove(rb);    delay(500);    digitalWrite(YELLOW, LOW);  }}void ExecuteMove(byte _move){   Lights up the green LED if _move == 65, blue if 66 (Works perfectly)  }爪哇public static void main(String[] args) throws IOException,                                               InterruptedException{    SerialPort sp = SerialPort.getCommPort("COM3");    sp.setComPortParameters(9600, 8, 1, 0);    sp.setComPortTimeouts(SerialPort.TIMEOUT_WRITE_BLOCKING, 0, 0);    if(sp.openPort()) {        System.out.println("Port is open");    }else {        System.out.println("Port failed to open");        return;    }    byte[] message = {65, 66, 65};    for(int i = 0; i < message.length; i++) {        sp.getOutputStream().write(message[i]); //Sends the message        sp.getOutputStream().flush();    }    if(sp.closePort()) {         System.out.println("Port is closed");     }else {         System.out.println("Failed to close port");         return;     } }  正如我已經(jīng)說過的,arduino 代碼單獨(dú)與顯示器完美配合,但是當(dāng)我使用 java 代碼發(fā)送字節(jié)時(shí),只有 RX LED 亮起,但“我的”LED 都沒有
查看完整描述

1 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

對(duì)于任何偶然發(fā)現(xiàn)這篇文章并且接縫有類似問題的人來說,這是因?yàn)?Windows 在打開端口時(shí)向 arduino 發(fā)送了一個(gè)重置信號(hào)。因?yàn)樗鼤?huì)立即發(fā)送數(shù)據(jù),所以 Arduino 在重置時(shí)會(huì)將其從緩沖區(qū)中刪除,并且永遠(yuǎn)無法讀取它。有兩種主要方法可以糾正這個(gè)問題,首先Thread.sleep(5000);在打開端口和發(fā)送數(shù)據(jù)之間添加一個(gè)。您還可以在 RESET 和 GND 引腳之間添加一個(gè) 47μF 電容。

來源:https ://arduino.stackexchange.com/questions/22267/java-jssc-arduino-windows https://forum.arduino.cc/index.php?topic=96422.0

希望這可以幫助某人


查看完整回答
反對(duì) 回復(fù) 2022-10-26
  • 1 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)