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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
0 Z, E# X' j: w" Z" p) t; I* V! i( H: O( n
#define _CRT_SECURE_NO_WARNINGS
, j( O/ E0 {  N! F#include+ i$ a: k$ j8 P3 P
#include
; d& b; b8 ]3 n9 Q6 S#include "tchar.h"3 l% T2 r9 q: _, Y
7 y& J$ M6 K2 T7 B* W9 c
#include
$ w) I' n6 q9 c, w1 J#include6 k; A2 ~- F1 {, J& A( _: v
: f( Q! o) b, o: L

: x% P# q  D0 S. \int mAIn()/ ~% o. f7 I% L6 [
{% L/ i' v$ b0 a! U9 V/ P# v
                HANDLE hCom1;
5 ]% y* l( x+ m! N# r; h+ Q                COMMtiMEOUTS TimeOuts;  8 D8 ]; r! ~$ W: z; w  ?
                DCB dcb1;# f( [" Z1 G' M' o5 r' v1 }8 q$ Y( `
                DWORD i ;
: P1 C* E; w: S5 ~                DWORD wCount =4;) I0 K# n! H% r& B. N
            DWORD wCount1;0 _; H! F. v" B
               / O* T6 c" s6 z/ j4 t' N& w* G$ A' c
- {* @, G7 m: f% g

( G  V/ @. T; t6 _6 `4 c, e  _        unsigned char str[8];8 I) s& {0 H# S$ F* v8 o. B( x' j5 C
                 
6 t" E: N' Q$ {) s    hCom1 = CreateFile("COM4",; m! d  l/ U) Q! f
        GENERIC_READ | GENERIC_WRITE,5 l2 V' ~8 |4 V; G! o+ M
        0,$ ]! a; w: p' ]3 B. o+ u  m
        NULL,
. y" t+ V3 ~; u' L3 ~( g. j1 `; s        OPEN_EXISTING,
& |; ~& Q; Z$ K1 d        0,
* v* E8 g* ]1 Z  b8 O+ R* l$ }        NULL);
7 X; V/ Q! R# e5 C: O4 T0 ?2 T
# p7 M& k% I3 @% Q- T. {6 O
) C  t2 x' c4 A7 l4 T, l8 E        if (hCom1==INVALID_HANDLE_VALUE )
) r( g8 @3 _7 x" x* ~5 {& Y    {/ Z. x! M6 t: U2 T% [3 ~
        printf("read open failed\n");4 ]  x0 _4 H: U# o- Y- z

$ p1 \+ S% O, D    }
/ P; C& l1 Q# {    else3 t0 r. t' ?; X- c
    {  h( |. p, T% C
        printf("read open successed\n");6 K1 ^4 B/ t9 n: B' @- n: v) g
    }& h% p# v2 @6 c- h
    SetupComm(hCom1, 20480, 20480);
& L; `- b" o! g3 g$ D9 a
7 S% u' I: c  M" f, c+ B5 n    //COMMTIMEOUTS TimeOuts;  
, `1 @+ i4 @" |* Y    TimeOuts.ReadIntervalTimeout =100;' a' F2 M& z! B% J2 L
    TimeOuts.ReadTotalTimeoutMultiplier =500;
4 U: ]+ P; ?- O6 q    TimeOuts.ReadTotalTimeoutConstant = 5000;     [) `. p; ~; r  ^. O
    TimeOuts.WriteTotalTimeoutMultiplier = 500;# M. E/ y+ q; D+ ~. z
    TimeOuts.WriteTotalTimeoutConstant = 2000;% k+ i7 D6 E- L) K0 W7 L3 W" K
    SetCommTimeouts(hCom1, &TimeOuts);5 X) f( K3 b  S, X, [/ Q  f

% W) G" v! d! o  D4 L    //DCB dcb1;+ n' t. U9 I  ^+ f4 s. y4 |
    GetCommState(hCom1, &dcb1);) @! }5 R; f# Z- n% k
    dcb1.BaudRate = 115200;7 V7 k/ ~2 I) E9 y& V! k
    dcb1.ByteSize = 8;//一个字节8bit- B, o" u& Q- o* }7 l- V6 s
    dcb1.Parity = NOPARITY;//无校验
' ?( k, I# }) ?, X7 G7 v    dcb1.StopBits = ONESTOPBIT;//1位停止位5 B, W! W' o+ _* j+ I
    dcb1.fParity = FALSE;- F# h! k" ], c% V5 a+ a
    dcb1.fNull = FALSE;7 V5 n1 @. n  @0 a4 j
    SetCommState(hCom1, &dcb1);" F& s% ?3 V8 G: m$ _# j7 R: l$ N
1 l0 P. l3 K7 u% D
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);! c: B- j1 L2 Q  D
( W$ s; o4 D) O2 O5 ^7 C) Y

% Z6 }; k2 {" ]        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))7 [) P8 [/ n; I" Z
        {
! I, B; w3 D2 t, m            printf("read failed!");. l/ ?& G9 l) Y1 z  @3 E- {
7 R! A( L5 {* w; b# M4 o: s, j
        }
2 {4 B; [" W% ]9 t) b" v9 ]                else( M( l/ @# D9 I" n+ I
                {
' ^2 L  [( N8 z. ?( R2 Q! d* I        printf("read successed!");
; B( ^; O. b! F! R- W* P& k8 j
6 G* H1 R! B5 N3 G& f# {
7 M5 W* a. M7 A' e7 @% y8 K        printf("wCount1:%d\n", wCount1);
7 w6 u3 K, ?; i9 Q8 j4 q& o
: s( ^# k3 D- L6 Q+ }               
! r3 |- P4 p: K- [# {5 ^& o                printf("read data is");5 {5 y9 W/ U# |3 f
                for(i=0;i         {
! @0 n9 v# }" m7 ?5 s: R               5 T) d8 _) R, U
          printf("%02X", str);$ }4 E; S5 X* D4 S# L
        }
0 e2 G4 x4 E* o! D' Z                }+ f: q% t2 |* I- C& d8 w4 R  ]
& k: r7 F0 b% u  h2 c! `
) _' _8 r' l& ~1 }6 U6 y' }/ E
      
/ a1 c8 l( u9 m  n: ^
7 C" [9 K; _! y5 ~CloseHandle(hCom1);; O- R2 Y0 o. b8 ]% t4 f

  e( f( l5 Z% w// system("pause");9 a' p, ?6 K; B2 ^
" J7 C0 l( @3 w0 p9 P( B
}' c' d, v3 I* K/ U0 G& N5 R( N1 k8 e& B; O
代码贴上来了,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-7-7 13:26 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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