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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
& Z9 \# N: [2 @3 Q5 x: w5 T% ~0 S" I$ b& q
#define _CRT_SECURE_NO_WARNINGS  e/ J5 h  l# t) C% c7 x0 l5 A
#include) ]5 |0 F' Y( V& {; T4 {6 {
#include3 I/ W4 V* Z) U+ S8 q
#include "tchar.h"
$ C& b+ N2 q' U5 b5 R" h7 i& s% P3 o/ u0 s5 \7 _- i
#include
; S. U, G( x3 _0 e# P8 c' R#include
5 i! v: L$ R! }5 h4 H  B8 R' k$ r! L* A. U
2 I1 H" l1 L0 H# m3 d4 |
int mAIn()* ^! ]) S+ S: x/ J4 h/ m, I
{$ A8 T. L* U6 Z" j
                HANDLE hCom1;
* C* B, ^# z1 P" I) l' R3 s                COMMtiMEOUTS TimeOuts;  
3 _' R6 ^/ K# q2 B                DCB dcb1;. w! g  \+ O2 D+ a1 h
                DWORD i ;/ q" Q- i. n: B# t1 l
                DWORD wCount =4;; H( y& @+ s* S
            DWORD wCount1;
/ j( g8 O5 d7 V, i7 M! ^               
* u# x# K% B" W, a! c* ^" K  o* H
: O4 Y) H5 T5 Z( F* U/ k% h; A  ~2 e! i6 b; v" V
        unsigned char str[8];4 ~* S. d8 D; A, c, `
                 5 w- u2 Q0 g- @  `
    hCom1 = CreateFile("COM4",
) Z+ a. z1 u. o. E9 p. h* r        GENERIC_READ | GENERIC_WRITE,
" H( j0 `6 t7 z8 T. u1 U7 Z% x9 b# V        0,
6 c: R$ C( H+ J4 y  U9 Y  e        NULL,/ `0 V" G: m. Q- V' A1 y6 k
        OPEN_EXISTING,
( p- _% _+ t  U8 g# U        0,
! p" d) e- W6 o5 S# |& p' ^' F        NULL);
% p3 s7 c9 J7 ^8 s7 {  S* `2 p: `$ _" L/ w

* J- ~8 U3 s- ^4 T7 v, E$ G        if (hCom1==INVALID_HANDLE_VALUE )
7 n4 q# T* C4 b    {& p% d: ]0 t; J; v
        printf("read open failed\n");
/ ?  N' V3 @; m" }. N  D6 D& _& ?& Q# x  N6 v+ P. I* Y6 a+ F2 a
    }
  b, D3 j5 r: \    else
& F& v( x+ L* ]6 Z$ [1 H7 e7 |( U/ b    {
4 C7 z: a% \' H+ B2 P+ a        printf("read open successed\n");
* P: [7 G5 p6 \' v2 W+ h  |) o% D# U2 X    }
  k# r) V5 g' P! ^6 c- M% Y1 H    SetupComm(hCom1, 20480, 20480);
, |, m5 k+ z7 {
0 E& V1 H. b' r    //COMMTIMEOUTS TimeOuts;    v3 U( O9 f1 ]+ }
    TimeOuts.ReadIntervalTimeout =100;
. |; M# ]/ g. ?, L: f$ P$ b    TimeOuts.ReadTotalTimeoutMultiplier =500;
7 B0 y7 ~( j- {) {2 C! P% h* {    TimeOuts.ReadTotalTimeoutConstant = 5000;   4 |0 R! h0 }% l! N( H
    TimeOuts.WriteTotalTimeoutMultiplier = 500;; T% {, Y( D- k3 T
    TimeOuts.WriteTotalTimeoutConstant = 2000;
. ]) M9 x4 z. l- O: V    SetCommTimeouts(hCom1, &TimeOuts);: _/ E' [* y9 k
# u) G! l7 H. `+ e# E: R$ [
    //DCB dcb1;2 K! G8 F8 ]  d
    GetCommState(hCom1, &dcb1);2 Z+ }; z" V6 G  e5 ?
    dcb1.BaudRate = 115200;
/ Q3 J+ h) A) Z8 x& r    dcb1.ByteSize = 8;//一个字节8bit& Q) E  V, ^3 O& q
    dcb1.Parity = NOPARITY;//无校验9 p' Q. j9 H3 o+ `. `# d' b
    dcb1.StopBits = ONESTOPBIT;//1位停止位( ?# s& L, N* K# B5 c
    dcb1.fParity = FALSE;9 m" U/ x  I3 f6 [8 Y5 c5 j
    dcb1.fNull = FALSE;+ Y8 Y0 i; y/ P$ e
    SetCommState(hCom1, &dcb1);
2 d: W+ T% Y. D1 i0 x7 H$ N+ G
+ I: f  A4 G8 R, t    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);5 \0 f" [5 _# [$ {

. S6 L" y5 Q, z$ B$ ~' {- x, x6 n$ r  y7 ^; [6 B: ]0 d
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
! D& i" C- `& }5 ]! O+ I        {% E3 X$ A- Q8 j; p7 I( T3 P
            printf("read failed!");- k; V" A% U8 M+ v0 n

2 R3 o2 j8 A, X        }
8 X2 B8 T- t9 C+ o/ y& D5 M                else5 U, e# U, d" M1 w2 N
                {
" @% q% q& l+ o8 c% V        printf("read successed!");
4 G5 S' I$ {# x- C  v
3 I0 s7 L* j5 F
2 u4 A$ B& p8 Z, r9 b0 P  G9 W3 T& v  r        printf("wCount1:%d\n", wCount1);* `  a1 G% W; Z0 i2 p+ T) l

) ?, \/ l3 {( ?% ~" b               - E& O* {" N/ K3 t6 p6 y5 s6 R* x. G% N
                printf("read data is");
; ^- p9 @! K# x; P2 X  F; C5 F+ I                for(i=0;i         {
" {# }/ w# _# @* |* Q; J               % D3 Z6 {, N" K5 _4 P
          printf("%02X", str);* Y" d: y' S; _/ \& c
        }
& D6 U1 {& k% A5 y6 N                }
: F3 |2 x  F) x3 }0 c6 s6 j5 W$ O# U+ x3 p$ B& d- p
8 n. V' y1 W1 y: s
      6 u" E* V# O  K4 _8 _4 z& K+ N& t

, R5 F" a. x# n$ U7 ]0 MCloseHandle(hCom1);0 f# b* _  n2 X0 G' W8 v7 T
0 M! C2 L4 i0 Q8 b6 }
// system("pause");
# w' t" O6 P" ?  W1 r; E
6 Q' L# G- v( h) }% u}
3 I  t" W8 B/ ]% S' C' F) i代码贴上来了,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-29 17:58 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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