找回密码
 注册
查看: 278|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为04 p1 w+ A* j# k8 I2 m, k

( ?  W8 P  [5 ?4 _$ ]#define _CRT_SECURE_NO_WARNINGS
  m6 a* C# l) A6 ]- I! }* J' b#include
2 s. v/ g: R& q) _#include
3 K3 P3 P% z" U6 _" S& P#include "tchar.h"
- G7 ~- N% g6 f' F! E  [( C# Q7 G( J1 W+ Q* t
#include
+ d6 \: y# I/ x) |; G  {# s) N#include4 @) J; x6 N) ^, U6 X

% a8 l0 s, m5 C' Y) ]9 ^3 ?1 T$ K  U: x; i
int mAIn()( \: F* H# w4 B
{* h8 c' R+ _3 m: B
                HANDLE hCom1;
4 R! A7 v: q+ n& H, z' U. T" r                COMMtiMEOUTS TimeOuts;  ! ]* }% p2 F6 `# f: \
                DCB dcb1;
% [  |8 X  }. G5 ?                DWORD i ;
" S: X; ~" X7 \" \, f                DWORD wCount =4;0 W, t+ H% b8 o
            DWORD wCount1;7 `6 f- i) `# L% G! _. E$ g
               ( ]+ }9 k; D9 T! y
( L* D0 r$ l5 S9 j6 _8 R

9 {: K% X4 A0 w+ E2 ^8 `        unsigned char str[8];- Q& ?7 a2 f' ?9 c) V; m
                 
- M( `! _4 E; f8 }: z$ I    hCom1 = CreateFile("COM4",
! e( V6 ]- c2 p3 ]5 X. V        GENERIC_READ | GENERIC_WRITE,$ s$ M4 @; ?+ @7 J
        0,
" |& d, ]" a4 ~4 r. u0 S        NULL,
* Y7 O3 O! t4 h/ d        OPEN_EXISTING,* H! ]$ F$ V; ^( G  t3 X: f  q% ]& a/ a* l
        0,
+ U7 o6 I6 Q  ?) E. F( m; \        NULL);7 j9 {1 M$ m/ [* h

) L: \, m) M1 Y$ D, t
; }" T4 Q6 F3 E  @% S7 r        if (hCom1==INVALID_HANDLE_VALUE )2 @( I3 u- j0 X; E5 u  I, z
    {
* F2 F' D5 G( l5 ?2 \4 F        printf("read open failed\n");# i) g, [& S$ ~9 `, w# w

' D. o" D+ s: B2 V/ b+ A    }
$ w' V# `9 o' k2 m; G' |6 F& F+ G7 D- k    else3 |8 a$ i1 H/ S3 u+ B4 N1 O, h3 D3 _$ o
    {) V, v3 l: b1 t) w6 A
        printf("read open successed\n");  f6 S* d1 F" g+ T; l
    }3 U, I; q* z) e) Z
    SetupComm(hCom1, 20480, 20480);* H3 n$ _- l4 Q* I3 B3 G

! f2 F  D6 S& J' A: p3 J    //COMMTIMEOUTS TimeOuts;  " z5 R5 B7 j% _  w
    TimeOuts.ReadIntervalTimeout =100;
7 F2 Z; v  ]' }; j6 a; a5 o! K    TimeOuts.ReadTotalTimeoutMultiplier =500;. O8 w* |) |  I1 R$ w2 Y
    TimeOuts.ReadTotalTimeoutConstant = 5000;   $ M4 a: O; [* P& d6 {1 s0 t
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
, w( B. u# X* `! }! A. Z    TimeOuts.WriteTotalTimeoutConstant = 2000;0 n% f1 M$ D1 b! _3 @) {
    SetCommTimeouts(hCom1, &TimeOuts);2 U; W6 I; z" p. V6 v
) w1 B2 O: L3 m8 Q- ^7 F8 H
    //DCB dcb1;
; L1 r' D  o6 Q$ b$ L    GetCommState(hCom1, &dcb1);' \4 [- R) T5 F; {7 j
    dcb1.BaudRate = 115200;
3 i5 Q, G4 E( Z2 {    dcb1.ByteSize = 8;//一个字节8bit
7 r  r7 a7 z+ i- K: d" |  R    dcb1.Parity = NOPARITY;//无校验. H3 {- ]* P2 x+ q9 ]
    dcb1.StopBits = ONESTOPBIT;//1位停止位8 Q3 a0 t4 p# Z0 D( ^
    dcb1.fParity = FALSE;
: ~( F) d* Q0 T$ _  R    dcb1.fNull = FALSE;) W/ H3 w9 P. y  x% Z3 G
    SetCommState(hCom1, &dcb1);
: I1 g5 x8 [  [5 W4 q. R5 C6 u) Z' z" Q+ L  {8 R
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);. k6 c2 A1 t/ ^" o7 q
4 `! V) M9 S; }+ L4 W+ k9 j

6 J5 j- ^' D6 @        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
, h5 ~; O0 M6 i) \- I+ x( o' l" M        {
" ^8 U0 M1 V, X  q# u; y. b            printf("read failed!");
2 Z! z; t, V' n7 o) K9 e  z) P
% k& {2 o6 n& d3 `* |# I        }! @  Z* i1 _: A- }% h8 |& v
                else, Z, U2 m7 B1 I
                {
+ {- V0 B+ e( p; M9 F        printf("read successed!");
7 k. @5 F9 C5 c. D4 i& \9 z8 s7 D5 r

3 j( ^& ]+ q, |9 T* X        printf("wCount1:%d\n", wCount1);& P  T1 [- u3 ]+ T. I3 I
  n0 Q7 E+ ~% Q0 Y6 u. e% g
               
0 Z( s$ {" Q* Q  }  @                printf("read data is");6 h: o! b9 m) J) x8 ^: r
                for(i=0;i         {
2 `. B: x6 m& K: Y! S' y               9 G' n( B) }% R& @1 u
          printf("%02X", str);  i, `+ E9 U/ y$ t1 Y2 \
        }
7 X+ [( z( q) b$ S8 p3 s, D                }, r6 t7 u$ Q" h4 U  g$ l
" a8 \& [$ ]4 m3 t% F6 S# D
+ q) B& {% `# p  |
      / d& c* h4 X. t
, g/ R6 _. n  \" x7 m
CloseHandle(hCom1);
) R3 h7 w- K! u1 L) P2 c5 S5 T7 K1 @! L! |& J& V4 y+ T
// system("pause");
& [2 d0 W- e7 K, A3 B2 k7 d4 y( C
}
' d5 u( W. `8 j; f. v' E# D. u. [代码贴上来了,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-6-3 13:42 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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