找回密码
 注册
关于网站域名变更的通知
查看: 299|回复: 3
打印 上一主题 下一主题

串口c程序接收数据长度总是为0

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-1-31 09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
串口c程序接收数据长度总是为0( x: l; j3 k8 t1 I) g) k

# I3 |5 g5 u: d7 N- U  F#define _CRT_SECURE_NO_WARNINGS) ^7 H& h( x! Q4 ]- k  |9 b! ]* T
#include3 r5 C9 c( B  u
#include% ^' j9 v/ [* C8 R* x$ m6 r. B
#include "tchar.h"7 ?6 A/ B; g5 a6 e

7 S. q: m4 m$ D, O+ s* _#include
0 F) u1 x3 v  x: Y& ~#include- E* u5 D* r: [
2 l4 L6 b, C) i5 |
, a/ L- K6 h! [( K; H6 u5 B
int mAIn()
% m3 B# j6 o0 y0 S' X+ L{0 \) s8 d, X  R# P( P
                HANDLE hCom1;
( C& Z/ C* C9 L+ s! Q& f9 n                COMMtiMEOUTS TimeOuts;  
% ]8 F/ o$ j7 a" f3 ]/ x+ J                DCB dcb1;% K, V3 b7 f1 Q
                DWORD i ;8 d# Q0 Z% i) e
                DWORD wCount =4;' A' m* o2 C% G7 Z, s+ {! K
            DWORD wCount1;) ^1 W! z4 z. X6 P
               
9 ?4 T( }% |7 K; w# ~0 f6 q" p/ A& h6 U0 ]
8 X) K6 g. o1 I6 r6 Z
        unsigned char str[8];# a. {3 @% T8 i
                 4 b; K8 C6 l' P: r. o
    hCom1 = CreateFile("COM4",: C4 i( h( ^2 I* S% I! P# J9 a
        GENERIC_READ | GENERIC_WRITE,
0 z7 g+ _& P- l; ~& d' @        0,
3 \2 F( M6 t# Y2 ^$ ~" m3 ~        NULL,
, l5 c$ p; {* L. m7 p) w2 v. S        OPEN_EXISTING,
& C8 p- @" r% r. S" s1 Y1 r, ~        0,
5 a$ P5 M3 E  k" f        NULL);% k" \+ m* u+ Y7 M

2 T4 g+ ], Z: d' f, F% g; J9 k' z' d! j3 ~, ?8 p* D2 ~& }! Z# Y" o, s
        if (hCom1==INVALID_HANDLE_VALUE )
# B$ w2 x2 m" J% B( B    {
- z6 Y) {* O  j7 f- w, L: `        printf("read open failed\n");+ n" ?( e3 _  Z8 Y

4 l" e# t. K( i) y+ @2 B    }
; h* z, Q, k" q# N    else
2 h( x# Y* a) k7 x% i% `  j% n4 Q    {
7 S4 f! q) w9 i/ U% T/ k* [        printf("read open successed\n");
  `& k. \& P6 \2 M$ r% M    }
5 a; y2 W+ C  u" _: B; W    SetupComm(hCom1, 20480, 20480);. c* k/ M) T# e

  ~" K* }5 Y  e: o    //COMMTIMEOUTS TimeOuts;  7 H. ^+ }5 @* e+ H  x
    TimeOuts.ReadIntervalTimeout =100;
/ V; h: p' g, |$ q) q    TimeOuts.ReadTotalTimeoutMultiplier =500;
5 R  S* Y9 p$ O2 ?) T* @& r& Q    TimeOuts.ReadTotalTimeoutConstant = 5000;   
0 u* t% P0 x! N    TimeOuts.WriteTotalTimeoutMultiplier = 500;
' z+ o8 b7 u2 m' p    TimeOuts.WriteTotalTimeoutConstant = 2000;1 b# K. f+ F3 r8 }% w2 A5 g
    SetCommTimeouts(hCom1, &TimeOuts);. a3 v! Z7 ^. w4 g8 s. z
# x' o5 Q! T4 f# p' V+ U4 b
    //DCB dcb1;
( W% N( ^: y" C% Y- n3 M& r2 z    GetCommState(hCom1, &dcb1);
3 u3 Z3 A3 }; W    dcb1.BaudRate = 115200;
6 k+ C' N6 \. z    dcb1.ByteSize = 8;//一个字节8bit
4 C( a0 G! E( \1 _    dcb1.Parity = NOPARITY;//无校验
, e, |0 x% {* Y    dcb1.StopBits = ONESTOPBIT;//1位停止位& K* i* l* {+ B! R7 z2 L
    dcb1.fParity = FALSE;
; ?3 X. Z1 p* t    dcb1.fNull = FALSE;9 @$ K) _# \, u! J
    SetCommState(hCom1, &dcb1);
+ q# f* S( m3 ?5 G% z
! x: C  g3 W8 u    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
; ?7 [2 n) |3 b% F  @* m& s0 C9 k' f3 @, l# H- B0 ~4 L0 Q  j
( X* z" m) y, o# T8 w# W" }* o
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
9 r2 Z$ B; L" l# d        {/ k8 Y. u% y/ c( f5 O. v
            printf("read failed!");
8 T. z' k: A& z" [$ v3 T9 {5 h. M* P3 R
        }. I( l7 N$ |7 u' r, o/ P& D
                else9 c4 P6 F, }. v, G6 r
                {3 B# x& \( _- q3 f' g. ]4 e1 Z
        printf("read successed!");! y2 u2 t5 \9 }- t
8 S! ~3 B/ b  @7 j" h

% Q8 e1 m; q  P, U( |        printf("wCount1:%d\n", wCount1);/ H2 Q2 C+ f# U1 N3 a1 [

0 B+ F" z0 U. [+ Y) U; B5 V4 l  R               " R5 z) m7 h6 z% L- V' P9 r; u
                printf("read data is");% S% O3 w( A  J2 y1 G8 A9 s
                for(i=0;i         {
; s& P7 g- s: S! x, e- d               0 b+ U$ S: T" N2 z, b
          printf("%02X", str);
: X- b4 D0 g  h  S. P$ F        }  u8 g/ T9 e' G
                }
  Q2 I5 ^0 C7 m9 }. P
$ S0 S$ s# T! Y4 m) O. A. |" G# \$ J: J! H  S; O
      
) Q7 R* ~/ W0 C# E! i
" a* c! Y% k, V( J7 A* }CloseHandle(hCom1);" d, [/ m) w% |1 R( E! e  r8 D: k

/ Q' z5 e/ k; A, G* i, k. [: v// system("pause");
* I4 O% `3 Z4 `  }  r4 E: Z3 r$ g
) w' ~1 V7 J/ [0 X- b, K}3 Y8 ~5 Y: @- w! [' Q
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。

该用户从未签到

2#
发表于 2023-1-31 10:42 | 只看该作者
先确定能不能发送数据和接收数据。

该用户从未签到

3#
发表于 2023-1-31 11:20 | 只看该作者
用串口监听精灵。想问一下波特率是多少,然后你发的什么数据呢?

该用户从未签到

4#
发表于 2023-1-31 13:44 | 只看该作者
代码进程只执行了打开、配置、关闭串口的操作,并没有执行读取操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-2 03:08 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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