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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS
4 L" _% r' m( }" h* g, I#include+ G& ^2 L$ \8 E
#include
4 Y" M3 _) F3 D- f#include "tchar.h"
& A0 t' W5 y5 `' e9 w0 k) C3 b7 ~+ E
#include
9 |( ~& Z1 C3 _5 |7 M! y4 W#include0 \& s  c4 O( a! X! \
. a! F9 T0 u4 Y( m# I. R- X
4 g; p4 t. m9 z" U: ~
int mAIn()- b* R' t0 D8 `5 V/ z" `+ a
{
+ D. F+ C5 r9 o9 E/ v% {2 c                HANDLE hCom1;
% j6 m% g1 D& [: {! J+ x                COMMtiMEOUTS TimeOuts;  4 e/ `3 b6 d: b6 K: m: z
                DCB dcb1;; t+ r2 k3 A0 ^, q  ?
                DWORD i ;5 c( J( M+ h' M
                DWORD wCount =4;3 S" L, `- X& C7 h# }2 u
            DWORD wCount1;8 x9 a3 s1 A3 C8 X% R3 j9 c& W, O
               : Z) y+ O) {' B
: r& S  G2 d. Q' L/ a6 F

5 Z1 W2 _3 r% o3 _        unsigned char str[8];7 w' X& _( ~$ m5 K/ D* _" M- C
                 
8 h3 {8 W# j, x) J! E/ p3 h    hCom1 = CreateFile("COM4",
- q1 {7 C# W4 w& r2 v2 u        GENERIC_READ | GENERIC_WRITE,& \$ d: f7 e' A/ U; U" J6 w+ |  C
        0,/ ^- Q2 q% i! j" b6 |5 N& D
        NULL,2 H/ O1 K! ]- ~3 V
        OPEN_EXISTING,6 f/ V+ j4 c& \0 q# r0 j, _
        0,) K0 `- O, p/ f: v7 y+ B
        NULL);
+ Z% s' u7 q8 s8 i/ @2 Y- Y$ S8 r8 Y. b) k5 E

2 p$ x$ @6 Q0 z) E9 q) p        if (hCom1==INVALID_HANDLE_VALUE )
9 _4 R1 h/ t9 p: S' |    {
' T! I* J4 A" }+ N$ {' Q- ^9 e        printf("read open failed\n");
6 x; g) B- \2 V# N) e# h1 W- T! {9 x# `6 K* t9 E! Y
    }+ u5 ?' O$ Q/ v; A, m& b
    else
3 j! s* q8 }0 l2 g, K    {& b1 n6 P* `. Y) P4 n
        printf("read open successed\n");
7 Z( n, t" }6 S    }2 E' e0 D% ]+ U0 U
    SetupComm(hCom1, 20480, 20480);
* f9 O$ X' e3 m1 l$ r0 K9 J8 z
0 }. {  t# F+ J4 o3 A    //COMMTIMEOUTS TimeOuts;  
) A7 f( y$ j$ b$ ]; R3 u8 [    TimeOuts.ReadIntervalTimeout =100;
8 f, W0 Y: m$ o/ O; t' o; R    TimeOuts.ReadTotalTimeoutMultiplier =500;
+ _) K; m, B! {2 L    TimeOuts.ReadTotalTimeoutConstant = 5000;   5 C, f( h! ~; e0 t" t: a
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
  G2 H, k, j0 ^" T3 G& T8 c    TimeOuts.WriteTotalTimeoutConstant = 2000;
$ {+ G! Q. ~) R  w$ D8 P, Q    SetCommTimeouts(hCom1, &TimeOuts);
9 q6 |! n6 G6 n
, J1 l" l: i1 _$ n9 G, z" [    //DCB dcb1;7 V' j) @& N$ y2 s- G# @
    GetCommState(hCom1, &dcb1);9 l( b+ o. ^+ c( w' S' f/ t3 N" P
    dcb1.BaudRate = 115200;
. R) b/ p5 a; s0 f: K$ }! H3 F4 M    dcb1.ByteSize = 8;//一个字节8bit1 ]" A+ f% o( Z; f
    dcb1.Parity = NOPARITY;//无校验2 B9 Y# B' D3 n: W1 r( C
    dcb1.StopBits = ONESTOPBIT;//1位停止位
) ^; Y6 N- a  u% ^! D    dcb1.fParity = FALSE;
* b* x  `, H+ o3 M    dcb1.fNull = FALSE;
9 }& d# L* k' `    SetCommState(hCom1, &dcb1);
% @/ n, b- X: |% Z8 L: s+ v# N  r  Z1 U9 C; l( N
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);$ V/ `0 X5 \) c3 @0 g5 M5 M6 \

3 y# w7 d( [4 b/ n: |0 n4 F8 K- U% G8 l
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL)). K% X; t& L) v
        {2 c1 d) d& ~, N! g: h( Q2 f
            printf("read failed!");
: ~! F$ u# z$ K- E& }% {5 Z
5 p4 p( r; c; X  ^        }- v* R* N, Y  e4 R1 x0 {7 V4 s6 R. R
                else$ _3 V- Y8 J+ C5 J+ M$ W
                {8 X0 ^5 R, p1 G. q
        printf("read successed!");
* Z5 r% z# M. y1 b' y4 B7 {- u; E- D
; i6 F# Q" n' m/ _  [4 K) S  N, n  f2 G7 u3 c1 W
        printf("wCount1:%d\n", wCount1);' o- w! O- o, ?- J4 Q: ?7 Q. ]

) Y. \% k; c9 z. ]# Q, i/ d/ U               
0 d9 J4 c  {; }4 j5 h$ g% I  y                printf("read data is");9 Q- G2 [7 K" @7 o
                for(i=0;i         {4 C/ i- A  b- m
               6 s( v: D% T" Y$ u% b
          printf("%02X", str);" ~9 u( O4 ~# [0 J4 N7 t. e) e
        }
; d% m) c% d; Q! g3 X                }
7 K1 X2 j8 K8 L5 \1 d* y
. Y- n3 ]  `* Y0 z- y$ s' K, z. O3 ^+ M4 J" f0 [5 T
      6 b; _  d9 H7 u& v

% z& Z4 F2 m5 R1 ?; p& g5 wCloseHandle(hCom1);% _5 }* b3 g' n& \4 b. P3 o

& y% K1 P! x0 d0 w' p// system("pause");
1 l0 c4 M/ Z( t" R
0 D/ K' Y9 d6 P# C/ z5 I) l0 h* M}
, O" J6 a2 l! k+ n7 i代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。
' A* i: B+ [) v% _% Z( T* |8 o. }& d+ ]. t0 l. G
( T. X! v. H9 B6 m7 G0 s

该用户从未签到

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-27 13:44 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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