{"id":14629,"date":"2024-03-15T09:39:17","date_gmt":"2024-03-15T09:39:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/"},"modified":"2025-08-06T11:18:55","modified_gmt":"2025-08-06T11:18:55","slug":"how-to-read-serial-port-data-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/","title":{"rendered":"C++ Serial Port Data Reading Guide"},"content":{"rendered":"<p>In C++, you can utilize a serial communication library to read serial port data.<\/p>\n<p>Firstly, it is necessary to include the appropriate header and library files.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;string&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;SerialPort.h&gt;<\/span><\/span>\r\n<\/code><\/pre>\n<p>Next, create a SerialPort object.<\/p>\n<pre class=\"post-pre\"><code>SerialPort serialPort;\r\n<\/code><\/pre>\n<p>Next, open the serial port.<\/p>\n<pre class=\"post-pre\"><code>std::string port = <span class=\"hljs-string\">\"COM1\"<\/span>;  <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u4e32\u53e3\u53f7<\/span>\r\n<span class=\"hljs-type\">int<\/span> baudRate = <span class=\"hljs-number\">9600<\/span>;  <span class=\"hljs-comment\">\/\/ \u6ce2\u7279\u7387<\/span>\r\nserialPort.<span class=\"hljs-built_in\">Open<\/span>(port, baudRate);\r\n<\/code><\/pre>\n<p>Read serial port data.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">const<\/span> <span class=\"hljs-type\">int<\/span> bufferSize = <span class=\"hljs-number\">100<\/span>;  <span class=\"hljs-comment\">\/\/ \u7f13\u51b2\u533a\u5927\u5c0f<\/span>\r\n<span class=\"hljs-type\">char<\/span> buffer[bufferSize];\r\n<span class=\"hljs-type\">int<\/span> bytesRead = serialPort.<span class=\"hljs-built_in\">Read<\/span>(buffer, bufferSize - <span class=\"hljs-number\">1<\/span>);  <span class=\"hljs-comment\">\/\/ \u8bfb\u53d6\u4e32\u53e3\u6570\u636e\u5230\u7f13\u51b2\u533a<\/span>\r\nbuffer[bytesRead] = <span class=\"hljs-string\">'\\0'<\/span>;  <span class=\"hljs-comment\">\/\/ \u5728\u8bfb\u53d6\u5230\u7684\u6570\u636e\u540e\u9762\u52a0\u4e0a\u5b57\u7b26\u4e32\u7ed3\u675f\u7b26<\/span>\r\n\r\n<span class=\"hljs-function\">std::string <span class=\"hljs-title\">data<\/span><span class=\"hljs-params\">(buffer)<\/span><\/span>;  <span class=\"hljs-comment\">\/\/ \u5c06\u7f13\u51b2\u533a\u6570\u636e\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32<\/span>\r\n<\/code><\/pre>\n<p>Finally, close the serial port.<\/p>\n<pre class=\"post-pre\"><code>serialPort.<span class=\"hljs-built_in\">Close<\/span>();\r\n<\/code><\/pre>\n<p>A complete code example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;string&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;SerialPort.h&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    SerialPort serialPort;\r\n    \r\n    std::string port = <span class=\"hljs-string\">\"COM1\"<\/span>;  <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u4e32\u53e3\u53f7<\/span>\r\n    <span class=\"hljs-type\">int<\/span> baudRate = <span class=\"hljs-number\">9600<\/span>;  <span class=\"hljs-comment\">\/\/ \u6ce2\u7279\u7387<\/span>\r\n    serialPort.<span class=\"hljs-built_in\">Open<\/span>(port, baudRate);\r\n    \r\n    <span class=\"hljs-type\">const<\/span> <span class=\"hljs-type\">int<\/span> bufferSize = <span class=\"hljs-number\">100<\/span>;  <span class=\"hljs-comment\">\/\/ \u7f13\u51b2\u533a\u5927\u5c0f<\/span>\r\n    <span class=\"hljs-type\">char<\/span> buffer[bufferSize];\r\n    <span class=\"hljs-type\">int<\/span> bytesRead = serialPort.<span class=\"hljs-built_in\">Read<\/span>(buffer, bufferSize - <span class=\"hljs-number\">1<\/span>);  <span class=\"hljs-comment\">\/\/ \u8bfb\u53d6\u4e32\u53e3\u6570\u636e\u5230\u7f13\u51b2\u533a<\/span>\r\n    buffer[bytesRead] = <span class=\"hljs-string\">'\\0'<\/span>;  <span class=\"hljs-comment\">\/\/ \u5728\u8bfb\u53d6\u5230\u7684\u6570\u636e\u540e\u9762\u52a0\u4e0a\u5b57\u7b26\u4e32\u7ed3\u675f\u7b26<\/span>\r\n    \r\n    <span class=\"hljs-function\">std::string <span class=\"hljs-title\">data<\/span><span class=\"hljs-params\">(buffer)<\/span><\/span>;  <span class=\"hljs-comment\">\/\/ \u5c06\u7f13\u51b2\u533a\u6570\u636e\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32<\/span>\r\n    \r\n    std::cout &lt;&lt; <span class=\"hljs-string\">\"Read data: \"<\/span> &lt;&lt; data &lt;&lt; std::endl;\r\n    \r\n    serialPort.<span class=\"hljs-built_in\">Close<\/span>();\r\n    \r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>Please note that this is just a basic example, the specific implementation may vary depending on the serial communication library you are using. You will need to find the corresponding functions and methods for the library you are using.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, you can utilize a serial communication library to read serial port data. Firstly, it is necessary to include the appropriate header and library files. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;SerialPort.h&gt; Next, create a SerialPort object. SerialPort serialPort; Next, open the serial port. std::string port = &#8220;COM1&#8221;; \/\/ \u6307\u5b9a\u4e32\u53e3\u53f7 int baudRate = 9600; \/\/ [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[274,10592,799,9870,10394],"class_list":["post-14629","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c","tag-data-reading","tag-programming-tutorial","tag-serial-communication","tag-serial-port"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ Serial Port Data Reading Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Serial Port Data Reading Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T09:39:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T11:18:55+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"C++ Serial Port Data Reading Guide\",\"datePublished\":\"2024-03-15T09:39:17+00:00\",\"dateModified\":\"2025-08-06T11:18:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\"},\"wordCount\":94,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"c#\",\"data reading\",\"programming tutorial\",\"serial communication\",\"Serial Port\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\",\"name\":\"C++ Serial Port Data Reading Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T09:39:17+00:00\",\"dateModified\":\"2025-08-06T11:18:55+00:00\",\"description\":\"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Serial Port Data Reading Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ Serial Port Data Reading Guide - Blog - Silicon Cloud","description":"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C++ Serial Port Data Reading Guide","og_description":"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T09:39:17+00:00","article_modified_time":"2025-08-06T11:18:55+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"C++ Serial Port Data Reading Guide","datePublished":"2024-03-15T09:39:17+00:00","dateModified":"2025-08-06T11:18:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/"},"wordCount":94,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["c#","data reading","programming tutorial","serial communication","Serial Port"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/","name":"C++ Serial Port Data Reading Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T09:39:17+00:00","dateModified":"2025-08-06T11:18:55+00:00","description":"Learn how to read serial port data in C++ step-by-step. Includes code examples, libraries, and configuration tips.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-read-serial-port-data-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ Serial Port Data Reading Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14629"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14629\/revisions"}],"predecessor-version":[{"id":158666,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14629\/revisions\/158666"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}