前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程基础】Windows下如何玩转串口编程

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

作者头像
程序员互动联盟
发布2018-03-14 15:29:07
2.9K0
发布2018-03-14 15:29:07
举报
文章被收录于专栏:程序员互动联盟
问题:有朋友在群里问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。只要好好阅读相关的每个函数,完成基本的串口通信就没有问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档