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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS2 ?" J; j7 J" J4 ^8 ?  S: ]: ~
#include
% t* X  |! P1 X+ J#include8 w/ Q* k6 x! F6 ~, c6 U- C8 T1 P
#include "tchar.h": w1 p5 Z7 u5 _4 m4 ^: w
* O+ v( U8 x4 s7 B
#include; ?1 y! V' ]) Z6 G3 d" l
#include
3 ^9 `- b  A9 a" Y7 g9 Z$ S3 j) a$ B0 s4 S9 f! y
& m6 P5 }- m0 m/ O4 _5 X0 M7 M
int mAIn()  S7 Q9 J/ |! V3 x9 d
{. V% A; g6 H4 H0 i7 u* C+ C
                HANDLE hCom1;, k6 {3 g! G' y
                COMMtiMEOUTS TimeOuts;    M. B% `* f" D* F6 L& Q& D% Q
                DCB dcb1;$ `+ p. J: T0 @
                DWORD i ;
% i; `  d4 W7 Y# ~- `) X                DWORD wCount =4;
, f+ X+ ^: D/ ~            DWORD wCount1;6 b: y- k! [0 e& v) @4 w
               9 ~* J4 J( l1 p  p5 v$ |% o
9 B! Z$ V  D- H! {! p
0 D% ~# |1 T* Z! _8 ^2 H6 z
        unsigned char str[8];# v/ I( n6 m/ e' k2 f, _2 O  F8 Q
                 ) i; M" {; d7 h9 z* j$ F" \, T3 _$ G
    hCom1 = CreateFile("COM4",
( [0 L1 }) x+ ]3 K6 |        GENERIC_READ | GENERIC_WRITE,
, }# C7 ^/ `" S% f  v7 X* g# W        0,' A/ x  X7 @# l
        NULL,
+ p5 r0 S6 v4 N# c& ~3 n8 A        OPEN_EXISTING,
3 z" n% N& c' @. ^5 X/ c/ v' m        0,
1 @; a* e: w7 e4 l        NULL);+ E7 [3 f2 H/ s
( g6 m% }! Z7 c4 C+ O  m3 F! K
% M- |, Z. n2 X8 d* G/ F
        if (hCom1==INVALID_HANDLE_VALUE )
9 U/ [& I0 v6 N" h    {
- i9 D  y7 H6 H" ]+ B7 m; [        printf("read open failed\n");
$ n  K' k* y& v% I( g% I: x$ i4 r, z# W4 N: n- O) N$ y
    }# {  ?# F8 \7 \+ e" j/ g; O6 |
    else
" U- A2 e8 A% m6 J& h. {: t" _- y- G    {
: T9 I( k) r( E, s  M& Y2 r/ D        printf("read open successed\n");6 x# ]) z5 o- P, X, V, p9 H! d
    }% M3 C& A. w/ _9 z
    SetupComm(hCom1, 20480, 20480);& S" p7 J5 O+ ^. R4 t* G
. w2 o- F0 T6 X; N/ m8 J
    //COMMTIMEOUTS TimeOuts;  ) N% H9 j: k+ |: I* Y9 o2 b
    TimeOuts.ReadIntervalTimeout =100;
( M3 F# u; R& x" X    TimeOuts.ReadTotalTimeoutMultiplier =500;
6 H7 c- d! e9 z+ \    TimeOuts.ReadTotalTimeoutConstant = 5000;   , A1 P# J2 G9 S( V! x4 M5 z
    TimeOuts.WriteTotalTimeoutMultiplier = 500;6 X/ u; A  }* |$ u0 p6 @
    TimeOuts.WriteTotalTimeoutConstant = 2000;
; L1 I. E6 @/ m! \2 g    SetCommTimeouts(hCom1, &TimeOuts);3 B7 `- t, ^; m0 p$ B
1 j5 Z* C7 S1 n: t
    //DCB dcb1;
# m! D3 G7 F! p! E2 }" e    GetCommState(hCom1, &dcb1);
& Y3 X! f0 J6 v& g    dcb1.BaudRate = 115200;
5 ?* y3 N- [4 q, b: N3 q" S. K    dcb1.ByteSize = 8;//一个字节8bit
2 O( H$ k% {7 c* k    dcb1.Parity = NOPARITY;//无校验
( k9 Y* D% p9 o- a& M    dcb1.StopBits = ONESTOPBIT;//1位停止位
) }& s5 ?$ i( e8 o/ w1 I    dcb1.fParity = FALSE;
7 S. F1 [' E$ ?! I! C' q+ R    dcb1.fNull = FALSE;
% x! H& z& J9 o, g  z. Z    SetCommState(hCom1, &dcb1);
& z4 w# E" t, x3 q6 Q( _4 l5 u
. ^7 W: m8 U/ J9 Z; v, b5 u- R    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);' _: C9 H* m' w
! ~) U) N# N( v. D$ t
4 e0 y% V" c' s5 V% f' I6 {
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))* P5 U( O; I* Y' @" F
        {
4 t" c; `8 T$ k            printf("read failed!");- E) A, U6 e( g1 Q3 e. i

2 \( X% h7 a' b$ Y  E        }. v/ a8 G7 H9 g
                else  g8 Z& Q* ~- W8 G
                {
# m. w3 K7 g/ y        printf("read successed!");9 r# A* L4 r/ w- r
) Z+ H* w. z" t5 {' L5 y

& g) p) I8 w' }. ~- h        printf("wCount1:%d\n", wCount1);
  w  H6 m9 r4 A( i& f( u7 `* j) o% w; V1 b5 G, z7 X( Q
               . C) B% Y* y. f5 K5 W' T
                printf("read data is");9 \7 ?$ t! Z+ J' |) T3 [
                for(i=0;i         {
; H3 \6 f/ ]" w; c4 W; @               5 |( g' W* v% c0 a5 ~' B5 X
          printf("%02X", str);
7 [, y! N) P9 {$ k) G2 B        }
7 Q8 k$ Z5 V# P- ~5 P: P                }
- p" W, R+ y" c5 n* R8 f: v5 g8 Z+ u& `3 O
! t4 z0 P4 [7 s7 `5 K1 l: n' X. M
      
' I/ L: ~" c% a% y% w3 c3 d
1 _; U/ r; h& O8 z6 ^CloseHandle(hCom1);% u2 z8 c2 T* L6 t

) W; C: O3 c: A7 {4 l) ]// system("pause");
! `( ]3 u; c$ s/ d; H% M/ \4 X2 d/ ^  m: X, f( o! y
}
; d: S; X: }: P5 `代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。
1 O9 t) l8 j& k, D+ g
' q# a% T8 ^$ b
, y( g: @  l9 n

该用户从未签到

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

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

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

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