找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1369|回復(fù): 2
收起左側(cè)

在C語(yǔ)言打開(kāi)com口的操作中本機(jī)無(wú)響應(yīng),但在其他人的機(jī)器中代碼完美運(yùn)行,實(shí)測(cè)串口...

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 5 黑幣 回復(fù)本帖可獲得 5 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 80%)
ID:419421 發(fā)表于 2019-5-2 09:38 | 顯示全部樓層 |閱讀模式
  1. int InitUART(void)
  2. {
  3.     hCom = CreateFile(TEXT("COM15"),
  4.         GENERIC_READ|GENERIC_WRITE, //允許讀
  5.         0, //指定共享屬性,由于串口不能共享,所以該參數(shù)必須為0
  6.         NULL,
  7.         OPEN_EXIStiNG, //打開(kāi)而不是創(chuàng)建

  8.         0, //屬性描述,該值為FILE_FLAG_OVERLAPPED,表示使用異步I/O,該參數(shù)為0,表示同步I/O操作
  9.         NULL);

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

  19.     SetupComm(hCom, 1024, 1024); //輸入緩沖區(qū)和輸出緩沖區(qū)的大小都是1024字節(jié)

  20.     /*********************************超時(shí)設(shè)置**************************************/
  21.     COMMTIMEOUTS TimeOuts;
  22.     //設(shè)定讀超時(shí)
  23.     TimeOuts.ReadIntervalTimeout = MAXBYTE;//讀間隔超時(shí)
  24.     TimeOuts.ReadTotalTimeoutMultiplier = 0;//讀時(shí)間系數(shù)
  25.     TimeOuts.ReadTotalTimeoutConstant = 0;//讀時(shí)間常量
  26.     //設(shè)定寫(xiě)超    int Dis, Vol, 時(shí)int Dis, Vol,
  27.     TimeOuts.WriteTotalTimeoutMultiplier = 1;//寫(xiě)時(shí)間系數(shù)
  28.     TimeOuts.WriteTotalTimeoutConstant = 1;//寫(xiě)時(shí)間常量
  29.     SetCommTimeouts(hCom, &TimeOuts); //設(shè)置超時(shí)數(shù)據(jù)寫(xiě)入

  30.     /*****************************************配置串口***************************/
  31.     DCB dcb;
  32.     GetCommState(hCom, &dcb);
  33.     dcb.BaudRate = 9600; //波特率為9600
  34.     dcb.ByteSize = 8; //每個(gè)字節(jié)有8位
  35.     dcb.Parity = NOPARITY; //無(wú)奇偶校驗(yàn)位
  36.     dcb.StopBits = ONESTOPBIT; //一個(gè)停止位
  37.     SetCommState(hCom, &dcb);//配置數(shù)據(jù)寫(xiě)入

  38.     return 1;
  39. }
復(fù)制代碼


C.png
MCU.png
回復(fù)

使用道具 舉報(bào)

ID:424598 發(fā)表于 2019-5-2 10:42 來(lái)自手機(jī) | 顯示全部樓層
每臺(tái)機(jī)接上串口后,串口號(hào)不一定是固定的。我自己電腦串口號(hào)就變動(dòng)了幾次
回復(fù)

使用道具 舉報(bào)

ID:419421 發(fā)表于 2019-5-2 17:01 來(lái)自手機(jī) | 顯示全部樓層
ssk7793 發(fā)表于 2019-5-2 10:42
每臺(tái)機(jī)接上串口后,串口號(hào)不一定是固定的。我自己電腦串口號(hào)就變動(dòng)了幾次

Emmm可是我是用串口助手打開(kāi)后確認(rèn)端口號(hào)沒(méi)問(wèn)題,然后關(guān)閉串口再?gòu)腃中打開(kāi)串口的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表