专栏首页程序员互动联盟【编程基础】Windows下如何玩转串口编程

【编程基础】Windows下如何玩转串口编程

问题:有朋友在群里问Windows下如何给单片机发送或者接收数据。

在windows下,各种外设都被看成文件,这个跟Linux下看成设备节点类似,所以串口当然是被看成是一个文件。既然被看成文件,所以打开和读写都跟文件类似。

打开串口跟打开文件一样,Win32下就是CreateFile函数,比如下面就采用同步模式打开一个COM1口: CreateFile(TEXT("COM1"), GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

异步模式打开时,需要将倒数第二个参数设为FILE_FLAG_OVERLAPPED。

打开串口后,需要设置超时和串口参数,超时用SetCommTimeouts函数,设置波特率、数据位、校验位、停止位等使用SetCommState函数。

串口发送其实就是串口作为文件的写操作,API函数是WriteFile,比如下面的实例就向同步模式打开的串口发送buffer中的数据: WriteFile(hComm, buffer, dwSendLen, &dwActlen, NULL);

同步模式发送数据时,是阻塞式的,也就是没有发送完是不会返回来。要是异步模式发送,则调用后马上返回而不管是否发送完毕,发送的具体工作交给后台进行,当真正发送完毕后通过事件通知应用程序。

串口接收其实就是串口作为文件的读操作,API函数是ReadFile,下面就是同步模式下的将串口数据读到buffer中: ReadFile(hComm, buffer, dwReadLen, &dwActlen, NULL);

同步模式接收数据时,也是阻塞式的,在希望读取的字节数没有完成时是不会返回的。异步模式则马上返回,如果没有发送完毕,则交由后台发送。后台完成发送工作后用事件方式通知应用程序。

以上就是Windows下的串口发送和接收,具体API函数的详细用法,可以参考MSDN。只要好好阅读相关的每个函数,完成基本的串口通信就没有问题。

本文分享自微信公众号 - 程序员互动联盟(coder_online)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-09-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 北斗系统用的是本国芯片还是外国芯片?

    北斗系统也是国内科技进步的一个重要表现,这次北斗系统无论从导航系统还是信号接受终端系统度很争气的用了国产的芯片,这也是国内科技进步的一次重要表现,其实国内很多企...

    程序员互动联盟
  • 芯片设计公司把芯片交到台积电或者其他芯片代工厂家制造,会不会存在技术被泄密的情况?

    最近关于芯片话题几乎成了大家关注的重点,究其原因在于中国经过几十年大踏步的前进之后已经开始向着精密化的产业进军了,中国每年仅仅是芯片的进口额度就已经达到3000...

    程序员互动联盟
  • 【编程基础】侃侃数据结构与算法-如何学习

    万事开头难,只要迈出了第一步,那么成功只是时间问题。上篇我们知道她是什么了,能干什么,学习她有什么用处。有了概念了,我们才有对一个东西深入的动力。如何去学习她也...

    程序员互动联盟
  • 树莓派基础实验36:通用串口通信实验

      对于树莓派 3B+来说,他的UART功能有三种: 1、内部蓝牙使用; 2、控制终端使用; 3、与其他设备进行串口通信。

    张国平
  • 单路USB转多路串口方案分享

    如果需要多个串口时,就要占用多个USB口,再加上鼠标、调试器等,PC提供的USB口就不够用了。

    单片机点灯小能手
  • Component之SIO

    包含了它之后,VxWorks就会调用usrSerial.c的usrSerialInit()来加载串口设备

    Taishan3721
  • 8.3 串口读写

    何谓串口?串口就是一个计算机接口,用于数据通信,例如计算机。老一点的PC和笔记本都有串口,工控机一般配置有串口,如果没有可以到淘宝上买USB-串口转换器...

    周星星9527
  • 虚拟串口工具_com0com

    因为这年头,都 2012 年了,应该没什么人有在用 Serial port (串行端口 / 串口),说 Serial port 大家可能想不起来,但说 COM ...

    张善友
  • ZigBee On Windows Mobile--3.模拟器和实物调试

        继续前两篇” ZigBee On Windows Mobile--1.背景和结构”和” ZigBee On Windows Mobile--2.硬件和软...

    ShiJiong
  • 【STM32H7教程】第30章 STM32H7的USART应用之八个串口FIFO实现

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980

    armfly

扫码关注云+社区

领取腾讯云代金券