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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS3 t1 z2 S3 P( }( o$ B
#include
5 A/ A2 X: I5 i) v' T% C#include3 @% A7 W6 h1 _2 N$ {" d' n
#include "tchar.h"# h# Q/ O; k3 J2 P, x3 c

' {# L  f* f1 N: b7 ]6 z& \3 M' q) \; k#include2 j# F9 a1 f$ m2 X5 b1 D2 S. ?
#include
; U4 N8 `& J9 x& u$ J5 \& m2 {; M/ F7 M
) e/ P! f  r& Q9 c/ @$ T
int mAIn()" X! V3 q  W8 N+ ]
{7 C4 r! P" J" m' w6 q
                HANDLE hCom1;
" n" y% s% d0 {7 U( K) O, Y                COMMtiMEOUTS TimeOuts;  ; ^9 f- l; J8 y5 D' P- D
                DCB dcb1;( i0 O# ^# S  G, O4 U+ b  a
                DWORD i ;
$ V/ T; h$ {: d. C                DWORD wCount =4;5 x4 T( A0 U# I6 w. X, ^
            DWORD wCount1;
+ X2 [: h% s6 a  ~% u               & i2 [/ J% ]% g
$ u( ]- r% _$ j1 R1 |- F
  s0 X5 e1 E9 d1 ]6 `
        unsigned char str[8];; S! J& I, Y1 v0 m
                 : O. K0 ~; D0 D3 m
    hCom1 = CreateFile("COM4",2 W' N! ^( p' [
        GENERIC_READ | GENERIC_WRITE,
, T9 @4 K, A9 n- S        0,
0 d! D( ^9 a& u9 d5 x7 A        NULL,7 ?  i) c2 ?9 P: N' k5 @5 r
        OPEN_EXISTING,
2 c9 b& F' ]  |% ^4 n, f        0,
- \/ B) Y8 C1 r" ~2 v' u9 W        NULL);
+ p* F! m4 c+ W4 h' f& X0 x6 _: Q( r& W8 M9 {  t  z

) ^/ i6 x6 B  ]+ o7 ?+ a6 j        if (hCom1==INVALID_HANDLE_VALUE )
9 P# u% B' z  m  _& M8 i. D- P2 |    {
8 G! @9 ^& d5 Y, K. w0 d        printf("read open failed\n");# m, L6 R; X; I# T/ I6 Z

" W) Q4 p: Z3 B* W; s9 g    }
& ?$ I! T/ i  v4 R    else
. b( h/ Y/ T+ f4 x    {
1 B5 _& }% A* e" d+ F        printf("read open successed\n");) {/ y  {* p# _6 }# v
    }
) y) X1 x. p% }; E    SetupComm(hCom1, 20480, 20480);' _  p  i* v. ~; d) ?5 O" X% `

( o8 T- x8 m8 a4 J8 D8 D1 w( G    //COMMTIMEOUTS TimeOuts;  : c& }' k; v- ]; p& d
    TimeOuts.ReadIntervalTimeout =100;
7 m! v6 X" m* y) I    TimeOuts.ReadTotalTimeoutMultiplier =500;& |. l2 `  ^2 q; }$ V9 W+ [
    TimeOuts.ReadTotalTimeoutConstant = 5000;   
& n. l1 q8 C( m0 k    TimeOuts.WriteTotalTimeoutMultiplier = 500;
9 c; b7 m* @+ ]1 z4 I* x! R3 b    TimeOuts.WriteTotalTimeoutConstant = 2000;0 t9 u9 Q% E4 h' f3 V" J
    SetCommTimeouts(hCom1, &TimeOuts);
9 `% z: K* }& f' Q7 N1 A2 a" c: N5 ?4 Z9 z5 o5 b5 f. s) Z+ t: a
    //DCB dcb1;( X' f9 A+ I4 k3 f2 |
    GetCommState(hCom1, &dcb1);; |9 B: o' F6 B3 }9 i- k1 S( ]! m
    dcb1.BaudRate = 115200;# x9 J: j& H- i5 [& a' L
    dcb1.ByteSize = 8;//一个字节8bit
6 x6 X( h7 y8 F7 \: C$ K    dcb1.Parity = NOPARITY;//无校验" R' G9 M  O" O$ c7 I
    dcb1.StopBits = ONESTOPBIT;//1位停止位
+ o7 D! X- n- M! A. s) l% Q; i    dcb1.fParity = FALSE;
* c" i) Y6 M& L) s( B2 t# c    dcb1.fNull = FALSE;. E2 ^& z  p. b3 \; v' e3 }
    SetCommState(hCom1, &dcb1);& p# d/ f/ N+ t9 t; \1 S# c
2 t, e4 Q5 ?/ F6 D, c' S
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
! a! d# o0 M9 n2 ^0 v
$ c, ?! u2 p) Z# X+ ?3 g% a0 L: k7 k# ^
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
/ v5 b  s! u9 Q3 ]. o" ]; O        {
! Q/ ~- D7 N% N5 r- ^            printf("read failed!");6 l2 A$ X$ Y" e0 ~4 e) w' b

. B4 W# `5 c# d: J! P        }: o; V. S9 b/ [9 u' X% b  ^/ u
                else
* G3 s* f8 c% {& M# C9 c                {2 b/ V: g1 _/ n+ B/ e8 L
        printf("read successed!");. S0 s9 K4 w+ e! \5 c

3 F8 B. G; V- r+ s+ ]5 W9 j* o
, x, O1 V0 z: O- P& l% i& _        printf("wCount1:%d\n", wCount1);
  y7 j# Y( \6 z4 X& X3 u# c2 q. i$ R: ~* o# c. C2 U+ X& E
               + k4 C/ `4 h2 S- @3 ^) R8 ^
                printf("read data is");6 {6 N. L9 @- p# ]5 u
                for(i=0;i         {
- J8 \: r! }+ Z8 L               # }6 H+ a% ~+ A. |- b/ q1 _4 k
          printf("%02X", str);
+ g( ^% U+ m3 e, c/ \        }8 {3 x# ?% p1 v9 Q/ Y. ]1 c
                }$ m7 W9 ^* {& D" H; T
; |3 {1 d, ^& |, C! p

" l$ R3 n8 U4 R  @7 J      
6 }, Q. g* O$ Q% k# C8 h  d; H4 H. d) T1 Q
CloseHandle(hCom1);
- M6 |& _  c1 a9 K2 j. d$ H+ c' V. ?1 j$ z2 }  S
// system("pause");5 }& C1 \5 G# `+ I/ _. q+ o# V
) W4 q& {! z3 {5 B0 v9 x
}" Y' j% ~* ^, [# G5 p
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。
8 O) z+ n  Y  F9 c+ v. c  }' k( x- b' v. Q" l$ t9 _

0 G0 U2 B0 r: I

该用户从未签到

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-11-22 05:16 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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