找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 923|回复: 2
打印 上一主题 下一主题
收起左侧

在C语言打开com口的操作中本机无响应,但在其他人的机器中代码完美运行,实测串口...

[复制链接]
回帖奖励 5 黑币 回复本帖可获得 5 黑币奖励! 每人限 1 次(中奖概率 80%)
跳转到指定楼层
楼主
  1. int InitUART(void)
  2. {
  3.     hCom = CreateFile(TEXT("COM15"),
  4.         GENERIC_READ|GENERIC_WRITE, //允许读
  5.         0, //指定共享属性,由于串口不能共享,所以该参数必须为0
  6.         NULL,
  7.         OPEN_EXIStiNG, //打开而不是创建

  8.         0, //属性描述,该值为FILE_FLAG_OVERLAPPED,表示使用异步I/O,该参数为0,表示同步I/O操作
  9.         NULL);

  10.     if (hCom == INVALID_HANDLE_VALUE)
  11.     {
  12.         printf("打开COM失败!\n");
  13.         return FALSE;
  14.     }
  15.     else
  16.     {
  17.         printf("COM打开成功!\n");
  18.     }

  19.     SetupComm(hCom, 1024, 1024); //输入缓冲区和输出缓冲区的大小都是1024字节

  20.     /*********************************超时设置**************************************/
  21.     COMMTIMEOUTS TimeOuts;
  22.     //设定读超时
  23.     TimeOuts.ReadIntervalTimeout = MAXBYTE;//读间隔超时
  24.     TimeOuts.ReadTotalTimeoutMultiplier = 0;//读时间系数
  25.     TimeOuts.ReadTotalTimeoutConstant = 0;//读时间常量
  26.     //设定写超    int Dis, Vol, 时int Dis, Vol,
  27.     TimeOuts.WriteTotalTimeoutMultiplier = 1;//写时间系数
  28.     TimeOuts.WriteTotalTimeoutConstant = 1;//写时间常量
  29.     SetCommTimeouts(hCom, &TimeOuts); //设置超时数据写入

  30.     /*****************************************配置串口***************************/
  31.     DCB dcb;
  32.     GetCommState(hCom, &dcb);
  33.     dcb.BaudRate = 9600; //波特率为9600
  34.     dcb.ByteSize = 8; //每个字节有8位
  35.     dcb.Parity = NOPARITY; //无奇偶校验位
  36.     dcb.StopBits = ONESTOPBIT; //一个停止位
  37.     SetCommState(hCom, &dcb);//配置数据写入

  38.     return 1;
  39. }
复制代码


C.png (56.8 KB, 下载次数: 37)

C.png

MCU.png (206.5 KB, 下载次数: 42)

MCU.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:424598 发表于 2019-5-2 10:42 来自手机 | 只看该作者
每台机接上串口后,串口号不一定是固定的。我自己电脑串口号就变动了几次
回复

使用道具 举报

板凳
ID:419421 发表于 2019-5-2 17:01 来自手机 | 只看该作者
ssk7793 发表于 2019-5-2 10:42
每台机接上串口后,串口号不一定是固定的。我自己电脑串口号就变动了几次

Emmm可是我是用串口助手打开后确认端口号没问题,然后关闭串口再从C中打开串口的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表