Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Qt ne détecte pas tous les port connectés

6 Apr modifié dans Qt / Langage C++
Bonsoir
Mon projet consiste à créer une application desktop.
Cette application va me permettre de communiquer du PC à un microcontrôleur stm32 via le port usb.

j'ai utiliser la classe : QSerialPort disponible sur Qt

Je désire savoir le nombre de port USB connecté sur mon PC.

Voici mon code :
#include <QCoreApplication>
#include <QDebug>
#include <QSerialPort>
#include<QSerialPortInfo>


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

qDebug() << "Number of serial ports:" << QSerialPortInfo::availablePorts().count();

return 0;
}
J'ai donc branché un flash USB, un disque dur externe avec un câble usb...
Mon problème est le suivant : Lorsque j’exécute le programme sous Qt il n'y a aucun problème de compilation mais le résultat du débug m'affiche la ligne suivante : "Number of serial ports: 0" alors que j'ai bien deux ports usb branchés.

Suite à l'activation du bluetooth ou l'insertion d'un clé 3g il y a détection de ces port , mais les autres restent non détectés.


Je ne comprends pas d'où l'erreur vient!!

Réponses

  • Bonjour,
    j'ai mis ton code entre balise pour plus de lisibilité.

    J'ai donc branché un flash USB, un disque dur externe avec un câble usb...
    Mon problème est le suivant : Lorsque j’exécute le programme sous Qt il n'y a aucun problème de compilation mais le résultat du débug m'affiche la ligne suivante : "Number of serial ports: 0" alors que j'ai bien deux ports usb branchés.
    C'est normal, les périphériques USB de stockage n'ont pas de chip série.
    Il va falloir utiliser autre chose si tu veux lister tous les périphériques usb branchés (libusb peut-être).
    Mais si tu veux seulement dialoguer avec un micro, tu n'as pas besoin de lister les périphériques qui ne sont pas des ports séries.
  • J'ai essayé aussi avec le microcontrolleur mais il ne le détecte pas.
  • Qu'est-ce que tu as comme carte de dev entre le micro et le PC ?
  • Salut,
    Vérifie d'abord que ton µC soit reconnu dans ton gestionnaire de périphérique et en tant que port série. Si ce n'est pas le cas, alors c'est un problème de driver PC.
  • salut , J'ai la carte stm32f407vg. Elle est détectée en tant que usb dans le gestionnaire de périphérique mais le problème persiste .
  • 7 Apr modifié
    QSerialPort ne peut gérer que les périphériques reconnus comme port serie ( "Port(Com et LPT)" dans le gestionnaire de périphérique windows ).
    Si ton périphérique est listé dans "Controleurs de bus USB" dans le gestionnaire de périphérique windows, alors il faut utiliser une autre lib, comme libusb par exemple.
    Ou alors modifier le firmware de ta carte stm32f407vg pour quelle gère la classe CDC de l'USB.
  • J'ai pensé à essayer l'exemple de STM32 virtual Com Port pour voir si la carte sera détéctée en tant que port COM . Pour cela j'ai suivi cette vidéo.
    https://youtube.com/watch?v=Dy8CcO5i42Y. Mais elle demeure détectée en tant qu'USB dans le gestionnaire de périphérique et le problème persiste.
  • Si c'est vraiment un port COM virtuel que tu souhaites, le problème vient donc du firmware dans ton stm32. Tu devrais donc plutôt te rapprocher d'une communauté stm32.
    Pour cela j'ai suivi cette vidéo.
    Intéressant de voir dans la vidéo la gueule de Keil aujourd'hui. D'ailleurs, tu as vraiment Keil et ulink comme outils ? Car c'est pas donné.
    De plus, il serait étonnant que stm ne fournisse pas un exemple de projet "pret à compilé" avec port com.
Connectez-vous ou Inscrivez-vous pour répondre.