找回密码
 注册
查看: 276|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0& W( r! w& T( U) D

: i1 e  d2 ~& t+ h. U9 d! y#define _CRT_SECURE_NO_WARNINGS
0 p* Z2 P5 v' B/ L  N" A7 I8 X#include
0 Y0 l) l4 a+ [& a3 L#include
9 g5 |+ E3 [2 {# X8 y( l" e& w& H. |#include "tchar.h"8 f* P) n( J9 u  s2 Q

7 z$ Q; p7 j7 R5 Y" K#include! }& p2 x6 @5 k
#include
6 [3 q/ C( W$ U. u, ~+ c$ G3 ^$ n9 V# i
+ n$ i5 l: \: g7 l2 @7 b0 e$ ]9 _2 }
int mAIn()  {& ~' V3 t( ~# f) ^) o3 _/ R4 [# w. y
{6 F; G% |, e+ I0 k3 F
                HANDLE hCom1;
- P6 E8 i* N+ N  i                COMMtiMEOUTS TimeOuts;  
8 s0 \! y% a' Q! Q' _                DCB dcb1;
; ?, @* R8 U4 P/ U# O/ z                DWORD i ;! ?' ^1 l% q3 d- F: g: M* b
                DWORD wCount =4;! D/ ~2 ?! a5 ^6 I- _
            DWORD wCount1;# G; q5 n1 B) a
               
0 j3 [2 ^4 f; T4 c6 [  p6 a6 a# L6 h% }) k' V
; V3 i% B; i4 z, j. b
        unsigned char str[8];+ `2 r+ \! Z' g
                 
% O- ~3 ]7 L+ E$ ~    hCom1 = CreateFile("COM4",
; D$ _+ Z5 C* ?6 E* H7 i* v; C        GENERIC_READ | GENERIC_WRITE,: c0 B3 a& h% h( P
        0,# K4 K  d. K  Q/ c
        NULL,
. I% I) s' |! l2 Z' R/ Z1 [* o  Z) j        OPEN_EXISTING,' S7 Y, J2 N% v3 }$ R" e: x
        0,8 J: ?8 t0 m: V' w
        NULL);% ]' |) C- N: o4 d
' Y% ^& u$ A1 x: X0 J+ k
: f' l+ a  Y: V) L) o
        if (hCom1==INVALID_HANDLE_VALUE )
! x" l3 k& k) u$ p, e  b" U    {. N3 s% Y- ]% p0 E; n" B
        printf("read open failed\n");
8 H) t. ~( x% M' R% `# q
! |5 e; X& Y$ y$ W7 C9 `* B9 `    }) V/ y) I. t* W) p* ]' R- r
    else# Z" d# F" W  o# \
    {
: f2 x1 s, V) m( |        printf("read open successed\n");
$ H# x7 @: U+ R7 v+ x    }
: `% W/ B. B0 q) C7 f    SetupComm(hCom1, 20480, 20480);
; R0 a) g+ `! S- g, F( _7 s8 X; H
" S- Q6 A, ^0 f7 L8 D) u    //COMMTIMEOUTS TimeOuts;  $ y( n3 g' ~/ T/ l( d7 j) c
    TimeOuts.ReadIntervalTimeout =100;9 o/ D; `+ s& B
    TimeOuts.ReadTotalTimeoutMultiplier =500;9 A5 p6 y3 h) s3 u1 S$ ~7 I
    TimeOuts.ReadTotalTimeoutConstant = 5000;   , p- d5 v4 l2 I/ E! n( {
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
' e. P" P" ]1 T, X2 h/ A    TimeOuts.WriteTotalTimeoutConstant = 2000;8 K5 y4 n# _  x
    SetCommTimeouts(hCom1, &TimeOuts);4 y3 M- X- S% X6 ]6 w. ]
& i8 J3 ^9 Y: v, Q. ?2 ^
    //DCB dcb1;
  D, u& m7 k( D6 }; Y1 p    GetCommState(hCom1, &dcb1);' K, K1 d7 L9 k% I+ S5 }, E
    dcb1.BaudRate = 115200;
/ J6 V. @! ^  d/ {, ~/ K9 L, \' ]    dcb1.ByteSize = 8;//一个字节8bit
3 H% p- c/ f. b" g7 x& W1 k; L    dcb1.Parity = NOPARITY;//无校验) v7 R% x( B7 o, b6 C
    dcb1.StopBits = ONESTOPBIT;//1位停止位3 x# C8 C, ], u0 L7 Z+ S1 n, p
    dcb1.fParity = FALSE;
/ o1 m8 A: j7 S/ r* h    dcb1.fNull = FALSE;
5 s6 }' _( f5 |) ~    SetCommState(hCom1, &dcb1);
" g# _) j1 J- ^$ x4 S
" O( \+ a; V. F8 s. U, R    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);* G4 s* S4 }# _7 y: K. Z

$ L  K' O2 _9 G9 N, U. @. Y* w# N' Y2 ~% P8 _/ Q  u* ?
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
1 k; ?1 `; n9 g' u3 q- _+ o2 C% p9 c        {
  ?1 L, y  b4 F2 Q: {            printf("read failed!");
# h$ K$ e7 I0 R# X9 r( d% k# p( G; ?8 d  ^& E
        }0 i7 Y+ B* e0 L
                else4 p% h3 ^! T( F7 g4 u
                {3 D9 T4 Z6 l" F' O
        printf("read successed!");
8 j3 E# U7 _5 X/ M& g4 @3 p9 d+ F. x# k4 }) F% \* H

" b: Z# h2 E& i% [( D8 r( D        printf("wCount1:%d\n", wCount1);' ~7 F' M, I% U% K

* Z- l7 Q, r/ G               
) Z  D$ l- j9 r% C! S$ g                printf("read data is");+ o( I* y" r6 E) N2 x( Q- B
                for(i=0;i         {
8 J5 Y# C" g# d4 l, }8 G! H               
7 L3 k& J3 L$ D0 b: X          printf("%02X", str);, p! T" z. s6 ~# D% x+ j
        }# S. A* x/ }" d5 z9 p
                }
! I' n6 p. a  D+ I; G  d" t' k4 I; B2 N: D% ]

. f9 J3 R0 q) f! Q      
/ i, `) W3 B  u" ?" }; I. |6 k7 w( B1 {7 b! h
CloseHandle(hCom1);, @9 Q1 M  Z4 i6 q$ I

7 G  k7 Y1 s. P; q# I$ b6 w// system("pause");& t6 B: `# J1 r

/ g; w. z: g# C7 \2 l; l: f& |}+ `& X' m+ Z- C6 O9 }& c
代码贴上来了,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-6-1 00:00 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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