Comment lister les ports série en C ?

Introduction

Cette page explique comment lister les ports série en utilisant la bibliothèque Serialib. Serialib est une bibliotèque multi-plateforme écrite en C++.

La bibliothèque a été testée sous Windows et Linux et devrait auss fonctionner sous Mac OS.

The library has been tested on Windows and Linux. Ce projet a été réalisé avec Qt Creator et compilé avec :

Lister les ports

La meilleure option pour lister les ports série disponibles est d'ouvrir chaque port et de vérifier le status retourné par la fonction openDevice:

// Teste chaque port entre COM1 et COM99 sous Windows et entre /dev/ttyS0 et /dev/ttyS99 sous Linux
for (int i=1;i<99;i++)
{
    // Prépare le nom du port (Windows)
    #if defined (_WIN32) || defined( _WIN64)
        sprintf (device_name,"\\\\.\\COM%d",i);
    #endif

    // Prépare le nom du port (Linux)
    #ifdef __linux__
        sprintf (device_name,"/dev/ttyACM%d",i-1);
    #endif

    // Tente une connexion au port
    if (device.openDevice(device_name,115200)==1)
    {
        printf ("Port détecté sur %s\n", device_name);
        // Ferme le port avant d'essayer le suivant
        device.closeDevice();
    }
}

Voir aussi


Dernière mise à jour : 23/05/2022