WIN32下的串口编程

本文介绍了作者在WIN32环境下编写串口通讯程序的经历,包括遇到的问题及解决方法。在CreateFile()函数中,参数类型错误导致的调试困扰,以及在WriteFile()函数中,OVERLAPPED参数未正确初始化引发的错误。通过代码示例和错误代码解析,提供了调试串口程序的实用技巧。
摘要由CSDN通过智能技术生成

昨天朋友让我帮忙写一个WIN下的串口通讯程序,之前也仅仅写过lINUX下的串口,对WIN下面的串口通讯程序还不是特别了解,所以就去网上找资料,现学现写吧。
对于WIN32串口通讯网上给出的的讲解也比较多,历程也很多,作为一个小白没有能力去向大家讲解串口通讯的基本原理和API调用,但是我发现网上给出的例程好像跑不起来,多多少少会有点小问题,在此我只能将自己运行通过的代码和编写时遇到的一些小问题贴出来,大家一起学习交流,也希望给像我一样的小白第一次写串口程序一些小帮助。
因为在参加比赛期间,时间比较紧,所以代码也没有整理,有诸多不完善的地方,希望各位大神谅解。废话不多说,代码如下

/**************************************************************
*   串口通信
*   包含初始化函数,接收函数,发送函数
*   仅写了字符发送和接收,需要可以增加单字节发送和接收
*   通过宏SERIAL_COM修改使用COM口,SERIAL_BOUD 修改波特率
*   默认:COM口:com5 波特率:115200 数据位:8 停止位:1 校验:无
*   环境:VS2010 
***************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <winbase.h>

HANDLE Robocon_com;

#define SERIAL_COM L"com5"          //com口
#define SERIAL_BOUD 115200

//串口初始化
int Serial_Init()
{
    DCB com_dcb;    //参数设置
    COMMTIMEOUTS tim_out;

    Robocon_com = CreateFile(SERIAL_COM,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);

    if(Robocon_com == (HANDLE)-1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值