Bibliothèque Asio pour C++

炎欲天舞
Libérer: 2017-08-04 09:55:55
original
2916 Les gens l'ont consulté

1 Introduction

Asio est une bibliothèque C++ multiplateforme, couramment utilisée pour la programmation réseau, la programmation d'E/S de bas niveau, etc. (E/S de bas niveau) . Son cadre structurel Comme suit :

2 Utiliser Asio

2.1 Télécharger

La bibliothèque Asio est divisée en version Boost et version non-Boost, veuillez vous rendre sur le site officiel pour télécharger.

Configuration 2.2

1) À l'aide de Qt 5.9.1, ajoutez la configuration suivante à son fichier de projet .pro : RemarqueASIO_STANDALONE La version non-Boost doit avoir


INCLUDEPATH += $$PWD/../../serialport/asio-1.10.8/includeDEFINES += ASIO_STANDALONE
Copier après la connexion

2) Si vous utilisez VS 2015, alors ASIO_STANDALONE La configuration est la suivante :

2.3 Exemple de code

Ce qui suit est un exemple simple de communication série, les principales étapes sont : Créer un port série --> Paramètres de configuration --> Lire et écrire des données --> >


3 ports série DB9
#include <functional>#include "asio.hpp"#include <QDebug>using namespace asio;// 存储接收到的数据char kBuf[16];// 声明回调函数void PrintBuf();int main()
{    // 串口 COM1    io_service iosev;
    serial_port port(iosev, "COM1");    // 参数设置:波特率、流控、奇偶校验、停止位、数据位
    port.set_option(serial_port::baud_rate(115200));
    port.set_option(serial_port::flow_control(serial_port::flow_control::none));
    port.set_option(serial_port::parity(serial_port::parity::none));
    port.set_option(serial_port::stop_bits(serial_port::stop_bits::one));
    port.set_option(serial_port::character_size(8));    // 向串口写数据
    write(port, buffer("Hello Asio", 16));    // 从串口读数据(异步)    port.async_read_some(buffer(kBuf),std::bind(PrintBuf));    // 开启事件循环    iosev.run();
}// 打印接收的数据void PrintBuf()
{
    qDebug() << kBuf;
}
Copier après la connexion

Lors de l'exécution du programme ci-dessus, vous rencontrerez un problème : le programme envoie/écrit d'abord au port série COM1, Saisissez

les données "Bonjour Asio", puis allez sur

pour recevoir/lire les données Pour un port série, les données ne seront pas reçues. Au dos du bureau, les numéros de broches du port série DB9 sont les suivants :

Parmi eux, 2 --> RxD, se trouve la broche pour recevoir des données ; 3 ---> est la broche pour l'envoi de données.

Pour que le programme ci-dessus s'exécute avec succès, vous pouvez

court-circuiter les broches 2 et 3

avant d'exécuter le programme. De cette façon, vous pouvez à la fois envoyer et recevoir des données

<.>

4 Port série virtuel

Si vous utilisez un ordinateur portable, il n'y a généralement pas de port série. Il existe deux options. : Tout d'abord, utilisez le câble de données

USB vers port série

et installez le pilote correspondant, vous pourrez ensuite communiquer avec les appareils dotés de ports série

Deuxièmement, utilisez Logiciel de port série virtuel pour créer un port série virtuel, par exemple, configurer le pilote de port série virtuel

 

couplé à l'

outil de débogage de port série

, vous pouvez être flexible Déboguer le programme du port série

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal