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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS
+ {% @3 X. n  L& L#include
( K8 _$ h; A$ |& d: Y% k& G4 U#include
! y! s) h/ B" e7 f#include "tchar.h"* D- u, d" S; w. z  O, }9 `

1 v( d/ d4 w; G/ s- ?#include
, @8 m5 Z8 E# [/ Q( J) j#include. \8 k1 H( o' S" c& a/ e
7 T1 I3 D" H7 \& G% g7 P
, u. A2 h1 N% n( |( M# `
int mAIn()  N9 Y: W) }2 Z
{
& }+ d( ~+ z2 B1 z                HANDLE hCom1;6 K* Q0 ]4 q/ ~- a0 c
                COMMtiMEOUTS TimeOuts;  2 R1 t. m* m4 T
                DCB dcb1;! N. \9 Z+ f$ y  v; F5 w. J
                DWORD i ;$ Y0 j2 @: a$ T% k; F
                DWORD wCount =4;
0 ]9 j4 U& k. N% H            DWORD wCount1;
/ Q  o) R9 |( x) `- `               
& P9 ?3 ~" P) N
% z; |  m$ M' p7 A  I7 {8 S! [
+ K+ v; m/ p# z; @) W  j/ y: M2 l        unsigned char str[8];, k7 ^7 D; w# J3 W
                 3 M% |! \4 s% j* s
    hCom1 = CreateFile("COM4",* N- r& R5 R" y
        GENERIC_READ | GENERIC_WRITE,
, ^# e4 _( R  e+ e$ P% t        0,
2 k2 u5 `1 g0 E% @0 }: H        NULL,0 E% ?4 V  l2 h+ U  I! {& g& ?
        OPEN_EXISTING,
" X- i: Z0 `/ R; p# S/ M        0,
  h+ ]4 b( ]5 _+ p% j        NULL);
5 d! S! g! \* X8 _4 s6 g
2 _6 b9 S* j) G4 I
9 y3 n2 h. ?& ]3 m) [        if (hCom1==INVALID_HANDLE_VALUE )1 Q9 c1 [4 H. h
    {: B0 k* s1 L0 B. o) J
        printf("read open failed\n");% u0 W  {# t, p5 h$ D# M

0 M0 z7 Z8 D' ?( [/ t    }
, I5 L( L4 a; k' P' V* P5 U% |    else
9 g) c6 \! \/ `    {2 C" y: W6 d/ {  ^7 l" c8 m- Z
        printf("read open successed\n");
/ Y, B" `  \5 q  ]6 O1 C7 p    }
: n* L* Z: C7 g    SetupComm(hCom1, 20480, 20480);1 C+ I7 v2 [! T& X& ~1 s& h( x. f
/ V; L9 m+ |) E
    //COMMTIMEOUTS TimeOuts;  
8 h4 Y& i8 m' A, @" o: @! U. F7 {    TimeOuts.ReadIntervalTimeout =100;
* J$ c9 b5 o7 y6 [5 |  e" L+ j$ W3 ]. y' p    TimeOuts.ReadTotalTimeoutMultiplier =500;
5 B0 K# P4 t( v1 J. m5 ^. G6 {    TimeOuts.ReadTotalTimeoutConstant = 5000;   
9 A; }( F( U$ n) V& n% j    TimeOuts.WriteTotalTimeoutMultiplier = 500;0 j( ^. V6 t0 ^5 Y/ ]# X
    TimeOuts.WriteTotalTimeoutConstant = 2000;- L; u, @) S& a( M
    SetCommTimeouts(hCom1, &TimeOuts);
: S% f3 j. Z) d" O6 S* B( L) ]* J( x% L+ [1 ^3 K# U# E
    //DCB dcb1;) V. N( f$ r, U. X/ l4 c. ^1 V% W* Y
    GetCommState(hCom1, &dcb1);( W, R1 b; O7 ]
    dcb1.BaudRate = 115200;
4 b/ p+ k' X- B$ o" c' a1 j    dcb1.ByteSize = 8;//一个字节8bit
3 n/ r5 J) k  W$ V4 f    dcb1.Parity = NOPARITY;//无校验
4 [  I: p; f% G! Z- W; w- u0 n3 u* ?4 j    dcb1.StopBits = ONESTOPBIT;//1位停止位, a# ?( B7 p; h9 D' g$ G3 k5 y, X
    dcb1.fParity = FALSE;
9 P) K' b) c) U: j  T2 m1 }- s% L  m    dcb1.fNull = FALSE;  r- T) a5 }2 Q8 m5 F3 @# B
    SetCommState(hCom1, &dcb1);+ d  ?3 G" R( b& O- t/ G0 C+ k1 p  u

) E4 Z$ H! }9 _- o% R( W    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
, D% M# _1 _' S7 M* `- O, F, }8 G4 D- j' @# x

0 c0 l3 b4 ?) ?3 u        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
" i5 K! f0 s1 \# f# W# Z        {
- i7 M- m4 M1 c% J5 i            printf("read failed!");8 i2 t# ]( T: h8 F* x

! M, A9 \- a# Z4 j+ B/ }        }
; y+ z$ |, |& P. i2 h                else
0 {+ h6 O' L6 g* J5 m0 h& V                {5 ]% V6 \& Y# \  D% g
        printf("read successed!");! N% q% i. y4 y) j) t
) e, |$ w9 d' |2 j8 ~% S7 r

, ?& E. R9 r( s0 t        printf("wCount1:%d\n", wCount1);
' S+ O" A7 E' @8 x
/ r% l3 l4 v7 B  o7 T* g               
. h6 q8 O9 d) C7 H- D                printf("read data is");
% N: d3 ]" J9 Y8 P/ a; T3 ~3 N                for(i=0;i         {( a) s- d/ j1 |( v8 w4 I& P
               
& M- }! o+ e1 Q4 Y, V4 y/ \          printf("%02X", str);2 e- \' s/ m% Y, ~0 j1 u
        }
  j$ h6 j6 R5 V7 B5 k                }, G5 ~) o$ }* y$ `: I  j9 s- N% l
1 @9 r3 `0 q, a, O

; r. i! I4 a& |* N9 @8 ~4 J& W2 l      
; A" {8 D4 v) q1 l9 [4 z1 g  E9 e4 h- B+ G" E
CloseHandle(hCom1);) K. L5 T* l5 K. r& l8 H! q
: I" Z+ }* `6 W2 }% z2 W. x4 e1 l
// system("pause");6 u5 P% j3 a$ c9 U1 u/ [4 F$ C7 e
5 v& E9 z  M, ]' k% P5 ?
}: `' e- n* t) q5 g. k
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。  L' f8 g7 l% A/ W
0 P; u% K$ J2 I
: x/ s  }2 x1 O# r) B

该用户从未签到

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-9-10 08:18 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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