mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB hat meinen Mauszeiger gesteuert!


Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe wieder Frage über mein µC-Steuergerät.
Sensor->ADC->µC->FT232RL->PC. Mein Rechner hat schon den USB-eingang
von dem Steuergerät erkannt: COM3, FTDI... Nachdem ich das Gerät
gestart habe, bewegt der Mauszeiger automatisch. Egal was ich mit der
Maus mache, auch Maus weg von PC, passiert es immer.

So heißt es "USB hat meinen Mauszeiger gesteuert." Ich verstehe
nicht, wieso hat mein USB-Anschluss mit dem Mauszeiger zu tun?
Hat jd so was erlebt?

MfG
Yaolan

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein OS Windows ist: es kann sein das Windows den FT Chip als HID
(human interface device) erkennt und den als Joystick oder Maus
einordnet. Das müsste dann im Gerätemanager so zu sehen sein. Abhilfe
dürfte sein den Treiber von FTDI zu installieren um eine universelle
serielle Schnittstelle zu bekommen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows ist schlicht und einfach Müll:

Ich hatte mal einen 433MHz Empfänger am COM Port.
Als ich Windows neu gestartet hatte, hat Windows den als Microsoft Maus
erkannt...

Vermutlich sendet dein uC während du Windows gestartet hast, dann
passiert sowas.

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei man sich fragen kann wie sauber es ist, dass ein Gerät sendet ohne

das es einen Befehl dazu bekommen hat.

Autor: Tobias Schneider (tobias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Machte jeder GPS-Empfaenger so ...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat nichts mit HID zu tun (FTDI-Chips sind keine HIDs), sondern mit der
archaischen Unterstützung von seriellen Mäusen.
Kann mit /noserialmice in der Boot.ini abgeklemmt werden.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist als Microsoft Seriell Trackball erkannt worden. Das Theater kennen
viele!
1. keine vom uC an den FTDI Daten schicken
2. im Gerätemanager Gerät deaktivieren (nicht entfernen, sondern rotes
Kreuz drann machen)
3. Rechner neu starten

Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank für eure antworten.

@ Rufus: "Kann mit /noserialmice in der Boot.ini abgeklemmt werden."
Was beseutet das?

ich habe etwas im Gerätemanager ausgefunden, dass "Mäuse und
ander..." besitzt "Serieller Microsoft Ballpoint"(COM3). Ich kann es
versuchen, dass dieses Gerät zu deaktivieren.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boot.ini ist eine Datei, die im Rootverzeichnis der Bootpartition zu
finden ist.

Sieht zum Beispiel so aus:

  [boot loader]
  timeout=5
  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
  [operating systems]
  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /noexecute=optin /fastdetect

(das letzte gehört in eine Zeile)

Alternativ kann es helfen, bei den Eigenschaften der seriellen
Schnittstelle die Plug&Play-Unterstützung zu deaktivieren.

Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

Danke Rufus!

ich habe "Serieller Microsoft Ballpoint(COM3)" deaktiviert. Es hat
geklappt! Aber ich kann auf keinen Fall in Matlab die Daten erfassen.
Weiß nicht, ob Matlab nicht eignet oder Problem von meiner Platine.

Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich erkläre noch etwas, was ich vorher schon in Forum gefragt habe.

Matlab:
s=serial('COM3')

   Serial Port Object : Serial-COM3

   Communication Settings
      Port:               COM3
      BaudRate:           9600
      Terminator:         'LF'

   Communication State
      Status:             closed
      RecordStatus:       off

   Read/Write State
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
...
Wie kann ich die Daten von USB in Matlab aufnehmen? Ist so richtig?

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du bist schon auf dem richtigen Weg
an COM3 (virtueller COMPort) ist dein Gerät?
in Matlab clickst du auf s im Workspace
dann hast du auch die restlichen Eigenschaften für den seriellen Port
die du an die Parameter deines Gerätes anpassen musst
(Stopbits, Parität, Datenbitanzahl, etc)

Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, COM3 ist mein Gerät, und es wird schon von Windows erkannt. Es steht
in Gerätemanager.

Aber bei Matlab ist es so, egal welcher Port kommt immer gleiche Daten
wie oben geschrieben wird. egal COM1 oder COM3, auch egal ob den USB
von meinem Gerät schon angeschlossen oder nicht.

Habe ich falschen Befehl von Matlab benutzt oder gibt es Fehler bei
meiner Platine?

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein du hast nicht den falschen Befehl benutzt
Wenn du mal kurz testest COM30 bekommst du mit dem Befehl auch auf AUCH
wenn er nicht vorhanden ist..
Als Konfiguration wird wahrscheinlich die Standardkonfiguration von
Windows für den Port genommen.
Warum liest du dir nicht einfach einmal die Beschreibung deines Gerätes
durch und konfigurierst anschliessend den Comport mit diesen
Parametern?
Anschliessend würde ich dir die Hilfe von Matlab empfehlen (help
serial)
damit du weisst wie du diese Parameter auch von der Kommandozeile von
Matlab setzen kannst und es nicht immer über den Workspace machen
musst.

>oder gibt es Fehler bei meiner Platine
Was siehst du den im Terminalprogramm wen du dort den Comport öffnest?
Ich würde davon ausgehen das irgendetwas ankommt (Windows hat ja
gedacht es wäre eine Maus)

Ich vermute es wird noch ein Problem auf dich zukommen:
Da die Platine anscheinend ständig sendet wird der inputbuffer für die
serielle Schnittstelle in Matlab sehr schnell überlaufen, wenn du nicht
ständig pollst.

Autor: Yaolan Zhu (zhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfram hat Recht. Ich habe schon die Daten gekriegt. Ich kann es
einstellen, wie groß die InputBufferSize ist.

Aber ich habe noch ein Problem. Ich habe im Programm eine Reihe von
0,1,2,3... bis 1024 unendlich gesendet. Was ich in Matlab gekriegt ist
z.B. 15, 24, 48, 96, 15, 152...

Ich weiss nicht ob mein Programm einfach falsch ist, oder soll ich noch
in PC (z.B Matlab) gemäß Protokoll decoden.

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>z.B. 15, 24, 48, 96, 15, 152...
wenn die zweite 15     ^ eine 150 ist
würde ich sagen du pollst zu langsam
Sollte das Gerät von dir entwickelt worden sein, stelle das Protokoll
vom reinen Sendeprotokoll auf ein Master Slaveprotokoll um das umgeht
einiges an Problemen.
Sonst ,schneller pollen Inputbuffer vergrößern.
oder eleanter Abfrage in ein ActiveX Modul verlagern und bei Matlab mit
dem ActiveX-Modul kommunizieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.