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
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 --> >
#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; }
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 surpour 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 pouvezcourt-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 virtuelSi 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érieet 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!