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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0! L( Y1 Z4 a2 s* ]4 t

9 [. C4 B' w. q; _& @5 Z#define _CRT_SECURE_NO_WARNINGS5 k/ D7 J" A+ v
#include
' k$ S* e4 q. h#include" k8 o4 i) G' J$ i+ i; n
#include "tchar.h"- w/ n5 K/ X. j- [9 G- v4 E4 L
. C. P  a; x9 q) i) C
#include, m' x# O. @6 ?+ A, h6 c, o2 O
#include
, v# K% B! u% V+ I. i
% k8 D7 q1 b5 k* [. x& z  M3 _$ ]. h4 O( U. G: m
int mAIn()
0 M  M- J; ]8 S' q9 d# Y{
8 M) S8 ^% b" D+ h                HANDLE hCom1;
; @+ w# m% y5 A. _: b& _' o' s                COMMtiMEOUTS TimeOuts;  
$ a2 F) D, M# T+ u6 I0 s$ ~2 n                DCB dcb1;
+ _5 B0 d' U6 D                DWORD i ;
9 p" Y; }6 I) ]" |                DWORD wCount =4;
/ M$ \& \& Y; l* b            DWORD wCount1;) i: i" k$ [, u: F
               . l7 a- d: a* M7 A& `2 |  @  \
0 }' v6 Y8 p( x! p6 @; k  I5 Q
& Q! j, x" `  r" O3 {
        unsigned char str[8];
# t; J3 \+ I2 {" W  u                 
3 c$ G$ M; Q  Z: D    hCom1 = CreateFile("COM4",- h; _9 I7 C* R  G! s) F
        GENERIC_READ | GENERIC_WRITE," w9 c' X7 E$ o9 w  E
        0,
) X2 t7 J2 V  i" ?$ s. w        NULL,
# T8 z" g! K; ~/ `7 `8 Y        OPEN_EXISTING,2 N# k0 a( H$ B
        0,, k2 R8 E; R2 z+ g! v9 r2 |
        NULL);' r9 @  Q9 T. b" O

0 ^/ {6 U3 g8 Q! |9 c" L2 x2 c" o) L$ P. N. T2 }1 |
        if (hCom1==INVALID_HANDLE_VALUE )
) K  I: j( V2 }7 J& U    {
7 f/ b& t5 q9 Y# U. b        printf("read open failed\n");& |, Z& Y' |# A; I

7 G" j$ p" r5 a0 B) p    }5 o+ m6 a" X9 Y7 |4 o7 ]0 G
    else3 d' C/ }0 C& Y; Z$ u
    {
$ H" a, P# `8 O2 c; V- C- y        printf("read open successed\n");5 e( _. Q, s. M( D" D6 y
    }
4 ~2 x3 _* \# g) x! d# {# x    SetupComm(hCom1, 20480, 20480);
' ^3 G3 F8 I+ y8 |9 v' v3 J  y* Z, k( w( m
    //COMMTIMEOUTS TimeOuts;  
% }$ x/ A# J8 v/ S/ {, |    TimeOuts.ReadIntervalTimeout =100;: I/ C! W0 \! k) Z( h
    TimeOuts.ReadTotalTimeoutMultiplier =500;2 [! a- Y/ T, p, _4 A$ `
    TimeOuts.ReadTotalTimeoutConstant = 5000;   ' V: I" F9 k; S. C
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
! n& I; v, S3 ?! O- N3 a    TimeOuts.WriteTotalTimeoutConstant = 2000;8 F1 }. E: D' O' L" V( |+ R/ {9 x
    SetCommTimeouts(hCom1, &TimeOuts);: |; s3 W+ g/ `/ h

/ L5 n9 t6 |* ]; J0 i* D    //DCB dcb1;
( A4 p$ c& s8 [9 K8 J6 K    GetCommState(hCom1, &dcb1);
& b& E9 f0 _1 K/ z* c  ]    dcb1.BaudRate = 115200;
' z. N5 {! s7 h* o5 }) E    dcb1.ByteSize = 8;//一个字节8bit
0 i% T+ C5 N" F5 s9 C6 z    dcb1.Parity = NOPARITY;//无校验
+ Y( P6 r& s: J- ^    dcb1.StopBits = ONESTOPBIT;//1位停止位
$ i5 E0 Z& \4 n7 _. O    dcb1.fParity = FALSE;  B7 V& n$ H' I" x$ j5 }& _7 ]
    dcb1.fNull = FALSE;
. \! a& T. X/ z( Q# x    SetCommState(hCom1, &dcb1);: F* E* B7 d# w+ d; L
, A9 p: x. e9 @- V
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);* b. Z6 x0 b. }( b2 I# S9 ?/ q
! M1 N% I! o/ W6 T+ z, Y6 A

$ ~* z8 {6 \3 ~8 M% [$ K8 A        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL)), y( g; h' O$ ^) Q
        {8 t* w/ T' X7 `7 X0 B
            printf("read failed!");
5 c' w1 f- k$ U2 \
! x7 E. F# l! P, B        }" A) _& w! L# C+ ^& k1 ~
                else
6 V9 X8 a, [& ]                {
7 ], S: [& r/ L. D) L+ V        printf("read successed!");  {1 Z0 h0 c  p5 s
! U" ?5 v) Q. c8 x2 p: K

# l3 H" a% C* d6 {* Z$ k# W' ^" L# l        printf("wCount1:%d\n", wCount1);- x% c! o* e3 b' P5 v6 h" }7 H

  w$ o0 ]) @; V8 u! ?               
1 D" S0 @0 v* F" @                printf("read data is");
; I3 l: r" ]. [+ n' \1 m( r' X$ l* r& y                for(i=0;i         {7 ]7 i- v# _" p# Z
               
  e% U/ {: _% B) \8 A, V% V9 D          printf("%02X", str);% z7 r! [+ o7 d! K
        }
0 I9 F/ q7 F3 S: ^3 ?6 g" I                }
9 {" o6 e% u4 o! b9 r+ l: f! S# h: S& u: c; Y) ^! p2 t( ?. N+ J. X
4 ~4 x9 @+ a$ p. F8 {5 C
      
6 l, O' l, E/ b$ M- S3 h- e  t' g
, |- P6 S- w- Z8 J& f, SCloseHandle(hCom1);9 t) |5 Q) f( }' O$ k

3 k# {# }& \% q// system("pause");
- x1 N+ `! r3 [4 {( W
7 P- L! u/ t# W  v2 |}
1 ^' b+ h  V4 l7 Q$ r代码贴上来了,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-5-30 06:40 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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