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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS
9 ^7 g$ k4 i  |5 ]#include  u$ x; h5 ~8 U
#include
' r" I1 H# M, u) Z/ O/ C' F#include "tchar.h"
& o  f' m- \+ H  U# W
, F: Z: l0 h/ A( n5 i7 I  r/ s#include
: _% v) e7 s# \/ u% l2 g, Z  q# B#include% A8 D" ~1 h1 u+ ^6 `% o* x

5 R" X* f) t+ r7 {3 c9 P/ P; e4 D% X' \4 m' f+ H
int mAIn()
) y1 W& E) {% y6 {9 L3 D4 o( l6 R' u{
. |8 a9 ?+ _, d, P& j                HANDLE hCom1;. b) w$ n  [6 f0 ~) P" C
                COMMtiMEOUTS TimeOuts;  9 B6 v1 I  A" \! @
                DCB dcb1;/ J; L1 I9 @3 M" |, L1 u
                DWORD i ;
5 V8 Z' N% e* G; \. w# v& k                DWORD wCount =4;; K' o# g; e6 f0 ~9 o
            DWORD wCount1;  b1 r( c5 ^6 q( @0 s9 D/ Z4 @* f: ~
               
/ ~: l1 b3 O& ]; A# T- D$ v" C, D$ u9 l6 d" [2 I5 u
7 H6 C2 {" }+ a: W7 e/ ^
        unsigned char str[8];
' N1 Z- \0 \- Z- ]! y+ Z+ \4 [2 ]; ~                 4 P9 X9 f# `2 G" X3 d5 k
    hCom1 = CreateFile("COM4",
7 Y! E: ?7 h' [  c        GENERIC_READ | GENERIC_WRITE,% y+ c; O5 `" d8 @' t
        0,
. L# s9 c& `8 \0 P' t1 {7 u        NULL,
8 i1 h, H* K& M% ^' }# A        OPEN_EXISTING,
/ X( J; ^7 c1 R0 h  F        0,% a/ `# n! G& e. h
        NULL);
- b! y6 ]5 a% T% V" T
: F$ p; d" \1 d& G" C- W' W
) u% R6 f/ e7 s9 D        if (hCom1==INVALID_HANDLE_VALUE )7 M7 K; `8 ^; ~1 Q1 h  V- M
    {4 [: J7 `" c* ?
        printf("read open failed\n");3 g$ E5 n! h4 A! ]2 g* ?0 C/ E& B
* W& x/ H3 V  `5 Y. r, p, o# L0 l( S
    }
+ X! ?- y# d6 y+ Z' G    else+ x. ]" V( X  N
    {
. K: B- d9 M' e8 |' I        printf("read open successed\n");
7 U$ l  _) ~# V6 n( A, v    }
8 s) t) K3 B3 i1 x    SetupComm(hCom1, 20480, 20480);
- t1 q, }% d+ h! f- @; U7 h3 b. w6 n0 F  X
    //COMMTIMEOUTS TimeOuts;  
7 T. `! Y/ S" P: `$ ]+ V  t    TimeOuts.ReadIntervalTimeout =100;8 w, X! a. V# W
    TimeOuts.ReadTotalTimeoutMultiplier =500;* R9 D$ @% ^6 `
    TimeOuts.ReadTotalTimeoutConstant = 5000;   $ l- ]: X9 K$ Z
    TimeOuts.WriteTotalTimeoutMultiplier = 500;- u2 \  A4 A4 g# f. F9 B
    TimeOuts.WriteTotalTimeoutConstant = 2000;3 C3 v6 m# r; m
    SetCommTimeouts(hCom1, &TimeOuts);( @5 p4 W; d8 f, Y
4 b% Y- A1 T+ T4 H( V& I
    //DCB dcb1;
! F8 P, z* D6 K    GetCommState(hCom1, &dcb1);
) q; f; v% X0 q: w2 Q    dcb1.BaudRate = 115200;2 J: y2 z  k2 U) \, d3 E2 P+ w  L
    dcb1.ByteSize = 8;//一个字节8bit
; j6 u% o; D4 d: _5 C    dcb1.Parity = NOPARITY;//无校验6 o0 Y% `- L7 K+ ^( A
    dcb1.StopBits = ONESTOPBIT;//1位停止位
- t/ j  Q! K& f, p0 T+ o    dcb1.fParity = FALSE;9 U+ N6 C$ k+ p$ a7 C0 y- D% j1 Q
    dcb1.fNull = FALSE;& k+ J1 z/ q; P1 J- A- ]# P
    SetCommState(hCom1, &dcb1);* e1 S3 ^$ I2 E. F. l- v8 ]
7 [5 H+ W& ?' C1 b  V; d8 f1 P
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
  X3 h5 M9 E, S" [( q& N7 Z7 _! k# D+ F- j

" j1 ~  a$ u8 d, M4 o. G$ E! w        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))$ i* |9 a. q' D& z* z8 G
        {
0 @) P4 g* R  {$ w4 r6 K2 u: {            printf("read failed!");1 w! B' f: b9 x5 ^, r' Y) V
# W' T' H* l& ~5 W/ G
        }
7 s- S: W/ g% w) y: K+ }( _                else# X# L4 F* ?& `9 v1 ^
                {) Z. l# E0 `) z5 ^* ]8 G# `5 j
        printf("read successed!");8 h# m' _& a, j
2 j& i; m, X6 t1 B# }) `6 s

3 I1 x% t5 w) A4 k  S        printf("wCount1:%d\n", wCount1);
, ]3 B% q  {& \! h6 d1 V
" W& z( [3 n4 F# k( Y8 a0 i. K# a7 U               1 g% c# L2 b/ @3 }0 [) d: o9 j
                printf("read data is");
5 Z% b2 L. O* A7 X/ h                for(i=0;i         {
0 d2 E0 ?& N3 C  Q0 ?' U               9 E4 e9 q$ d% W# e: \! d
          printf("%02X", str);
. E0 a  P( O) N        }* R- r: T6 r) X% o: O4 E% d0 q
                }
; D/ m0 n% n3 o5 x0 `3 B( j
4 L9 `& L4 X7 q, O+ u5 W8 C% A7 ]7 v# C  \* m4 o& Y6 h
      
+ X  `* e* U6 b2 M  C4 ~7 K% ]4 U% B* z/ p5 c
CloseHandle(hCom1);% `* v6 I2 q9 i2 f8 \- ^

: Y  q( D! M# ~// system("pause");
1 ^) V. K: B  A/ o: {0 j
  ]5 b9 d, d, ^$ Z/ |0 F6 M: q}, P& E6 D, s1 I' t  v  Y* {
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。4 E/ N! Z" A2 |2 t

, C: ?1 v2 Q  `1 j6 ?' r8 G# v  F3 \6 \8 v, U

该用户从未签到

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:49 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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