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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS& q& \9 F" D6 d0 @
#include
- n, I# `5 @4 N. U8 G#include4 w0 k7 @0 S6 _4 ^
#include "tchar.h"
5 ^3 y) z6 ^- k. O3 x. O: ?, G7 ]) _* G2 {; c
#include7 p1 l3 g4 l; |; D" w
#include
: u  W  P% {9 Q& Q6 P* Q
. x8 V0 {0 x; e' F# G% H
% T2 }: S. y) b  g2 |' b; M: ?- Wint mAIn()  _, v8 A9 \3 q8 [7 f+ M; j4 _
{
8 ]6 D0 I+ k% r8 {8 B                HANDLE hCom1;; ~/ i! X0 p! p/ \
                COMMtiMEOUTS TimeOuts;  6 M4 ^( }/ L* r- w
                DCB dcb1;
! Z" T  w, w! k9 b2 |& T                DWORD i ;
' ~4 A- E0 Y5 e8 V+ A, S3 C                DWORD wCount =4;# Q* q$ e# x) `: J; f! ]$ e. ^
            DWORD wCount1;
; v2 f  i/ P* C% n3 b1 @4 u               
6 r. j. x4 M$ B( y  R# k8 f
4 ^8 i+ Q: e( h" a" c3 z$ ?" x. ?; w2 n+ R) k5 I- Q" b
        unsigned char str[8];
4 t! d) b" f; u. k  z+ R8 x                 
( ]6 _( K1 ?: d& O& E, Y    hCom1 = CreateFile("COM4",* H2 }& C. P  A) V( Z; z
        GENERIC_READ | GENERIC_WRITE,
8 u5 g" }( {: R5 m2 f7 t$ ?7 b! z- E5 \        0,
/ D9 V* [2 ^1 |* G4 u        NULL,; M* S' x6 E5 k% u+ w3 x1 v
        OPEN_EXISTING,0 L( k( g! L0 m1 }6 y! b8 z9 W
        0,. {" f- z# N/ J* R
        NULL);+ C! D  e% X5 Q5 c' r3 O
+ w3 E5 C5 [: }) w* R- X# T$ Q

1 D1 y7 k5 j& e% y        if (hCom1==INVALID_HANDLE_VALUE )
% [  n0 {/ g2 ], I3 \& q    {7 D. _5 {! \, _2 ~+ Y6 M
        printf("read open failed\n");
9 o: Y" r9 x+ L
" V' A9 P) \. v7 a    }/ t2 v# h7 \/ G6 r7 V
    else* G7 ^2 l2 t: B
    {
1 i: W9 q- L, _  ?1 j1 Y! Z* W! ^        printf("read open successed\n");
1 D/ i% S' z  i4 G" S( M3 l5 |    }, i, r+ [8 T& J
    SetupComm(hCom1, 20480, 20480);9 {% \( j" j" X2 q/ H! K0 }" @3 i% ?
0 A4 D2 Q  v- `/ C" y% N
    //COMMTIMEOUTS TimeOuts;  
: P5 g, v6 o1 n" e; Y! c( T    TimeOuts.ReadIntervalTimeout =100;
- Y; L) n; x( Y' |( F    TimeOuts.ReadTotalTimeoutMultiplier =500;" J, Z6 V* y8 z" l! g+ E3 M! ]9 a
    TimeOuts.ReadTotalTimeoutConstant = 5000;   
3 N7 x* Q6 g8 @5 \. H    TimeOuts.WriteTotalTimeoutMultiplier = 500;' ^) r5 v' W' X
    TimeOuts.WriteTotalTimeoutConstant = 2000;. c6 g, r8 G: _" ^
    SetCommTimeouts(hCom1, &TimeOuts);
1 L( w4 N( v- X4 K. I5 y. a
1 G6 T" s3 X& ~, P) i: h; c) Q# K* f    //DCB dcb1;6 O: Q& m9 A; }. e$ v
    GetCommState(hCom1, &dcb1);
" |4 z) D* b0 s    dcb1.BaudRate = 115200;8 z% k# V6 p7 N+ ~+ i8 {1 J; C+ m
    dcb1.ByteSize = 8;//一个字节8bit# f! N3 ?0 w- H$ }, w8 s1 `- _4 H
    dcb1.Parity = NOPARITY;//无校验
( s' x+ Y5 |; S0 U3 V; k+ U    dcb1.StopBits = ONESTOPBIT;//1位停止位
% `+ R( j3 s; o& l  [    dcb1.fParity = FALSE;
( A+ m5 M4 k* D6 N2 M( D    dcb1.fNull = FALSE;. J2 e4 T# Q+ h6 a# ~: m$ q
    SetCommState(hCom1, &dcb1);
) H3 F9 i4 I: Y  `1 D7 ?% [' V, y7 o3 ~' a) @
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
$ I9 P$ ?4 Y7 G) Q* z+ [0 I0 L: {/ p9 b. w7 W0 G2 c

! f3 }# }3 N) b, N0 d        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
# I6 Z) ^0 j) s9 q( K& q* a        {
& F! H% Z/ u& y            printf("read failed!");) A- \1 }: F# X) u* t' p# H' p2 b

" [$ V$ S& ]5 B& V0 @1 y        }
9 A8 H& N1 F$ Q# C: a% U* @                else1 Y. _" ^3 a( v) ?- e& i
                {0 _& `7 N0 u% @; L  k  A0 r' ?
        printf("read successed!");
: D$ I) \' [# t$ c/ L8 H% r  }) N2 C$ g8 V0 n  i! [  Q
! X- l: G5 ?/ y! ?' B# W: y
        printf("wCount1:%d\n", wCount1);6 V- |5 F3 A# P4 @4 H4 s5 I+ [; b  S8 c
% O; {5 T, j$ B! A3 d) e
               / H. a0 b- H, B- E
                printf("read data is");
$ C& O6 K6 C8 k  U                for(i=0;i         {$ L& e7 E; W+ O+ b
               + J' z$ ?% q) S6 H( u
          printf("%02X", str);  l2 A$ s1 l" D/ j% U2 k4 Y! r& Q7 z
        }
1 t* I5 |/ a/ C' [& m' H; @                }/ j* c( `# T+ F- Q5 F$ @
- U- m  `! I6 V: T$ i0 @; u

  X# o/ w- S: }& M      
. X9 \( E2 w2 V4 Z1 g0 p' K* }( H
" W: K3 f) ?) p' x. p( V; XCloseHandle(hCom1);
3 m5 K5 z9 A6 f3 ~
8 H$ C; o( J$ O" P, C4 P// system("pause");, h! _4 v- e$ B- }
5 G! x6 o3 b1 J" \. \, Y5 d0 M. l
}
3 {6 s, H- V) }' m( l' ]代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。( `# j4 [8 u5 K5 y

6 B. ~+ p8 x& O. e9 `  q) ]( b5 A8 W; C

该用户从未签到

2#
发表于 2023-3-14 15:34 | 只看该作者
先确定能不能发送数据和接收数据。

该用户从未签到

3#
发表于 2023-3-14 15:58 | 只看该作者
想问一下波特率是多少,然后你发的什么数据呢?

该用户从未签到

4#
发表于 2023-3-14 16:14 | 只看该作者
把它和发送代码合成一个c文件它就可以接收,单独的c就不能接收。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-5 16:44 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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