ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
336
336
EMPFEHLEN
-
hallo zusammen,
ich möchte mit einem über USB angeschlossenen µController kommunizieren. dabei nutze ich von FTDI einen D2XX treiber, um auf den USB als SerialPort zugreifen zu können. mit hyperterminal z.b. klappt die kommunikation und ich erhalte nach dem befehl "#0M" die korrekte antwort. nur nicht mit folgendem code...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
import java.io.*; import gnu.io.*; import java.awt.*; import java.awt.event.*; public class comframe extends Frame{ static CommPortIdentifier portID; InputStream ins; OutputStream out; static SerialPort serss; TextArea ausgabe; TextField tfe; Button bt; public static void main(String[] args){ try{portID = CommPortIdentifier.getPortIdentifier("COM3"); serss = (SerialPort) portID.open("This Programm",0); comframe f = new comframe(); f.setSize(330,250); f.show(); } catch(Exception exc){System.out.println("Fehler :"+exc);} } public comframe() { this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0); } }); setLayout(new FlowLayout()); add(tfe=new TextField(40)); tfe.addActionListener(new sendeListener()); add(bt=new Button("Senden")); bt.addActionListener(new sendeListener()); add(ausgabe=new TextArea("Port COM3 geöffnet\n",7,40)); try {ins = serss.getInputStream(); out = serss.getOutputStream(); serss.addEventListener(new commListener()); } catch (Exception e) { System.out.println("Fehler: "+e);} serss.notifyOnDataAvailable(true); try {serss.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1 , SerialPort.PARITY_NONE);} catch (UnsupportedCommOperationException e) {} } public class sendeListener implements ActionListener{ public void actionPerformed(ActionEvent e){ PrintWriter aus = new PrintWriter(out); aus.println(tfe.getText()); aus.flush(); aus.close(); } } public class commListener implements SerialPortEventListener{ public void serialEvent(SerialPortEvent event) { if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){ byte[] readBuffer = new byte[15]; try { while (ins.available() > 0) { int numBytes = ins.read(readBuffer); } String nachricht = new String (readBuffer); ausgabe.append(nachricht); System.out.println (nachricht); } catch (IOException e) {System.out.println("Fehler: "+e);} } } } }
der port öffnet korrekt und gesendet wird auch, jedoch erhalte ich erst nach einer zufälligen anzahl von sendungen des befehls die entsprechende antwort. ich hoffe jemand kann mir helfen und schonmal danke im voraus.
gruß
wallace
-
28.11.07 12:01 #2
- Registriert seit
- Oct 2007
- Beiträge
- 42
Das sieht mir nach einem Baudratenproblem aus. Wenn die falsche Baudrate gewählt wurde, kommen nur kryptische Zeichen an.
Ähnliche Themen
-
Wie Controller und View über weak references, z.B. via EventBus, verbinden?
Von DarthShader im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 24.08.10, 15:53 -
Über UDP mit Gerät kommunizieren.
Von soeni1987 im Forum Java GrundlagenAntworten: 0Letzter Beitrag: 05.07.09, 15:57 -
VB Programm zum Kommunizieren einer SPS über RS 232
Von manahi1 im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 02.02.08, 21:24 -
Platte über RAID-Controller mounten
Von Janosz im Forum Linux & UnixAntworten: 0Letzter Beitrag: 05.10.05, 20:05 -
Controller via Com-Port
Von monomo im Forum C/C++Antworten: 8Letzter Beitrag: 27.04.05, 12:53





Zitieren
Login





