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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
4 F# A: L. J, s* s
) g! I% l. ]2 e$ D" w#define _CRT_SECURE_NO_WARNINGS
; e; R$ w9 Y1 B, E1 {#include% L$ @7 G: @- N0 _
#include! n; Q7 i1 D" |+ t
#include "tchar.h"# i* R2 P( `2 g( M

& {' n" `  i) A5 }! `, U) u#include
# F) b- E: L$ `, m#include4 N1 E: B6 f# d
  D: L' C( i9 p: S

$ i) Z4 q0 d! rint mAIn()
0 b( s& ~7 s. L{
( Z7 g5 v$ Y6 Y7 J+ V7 c1 @; @' S                HANDLE hCom1;
- b. e  _* v( V; M* U& s                COMMtiMEOUTS TimeOuts;  * I" m( |1 g# l: l9 ^! j
                DCB dcb1;3 Y* ]2 P$ F$ X2 K
                DWORD i ;' d1 f4 Y( p: u$ f0 g" q, d
                DWORD wCount =4;+ G5 ~0 y' j: Y6 M5 n$ E3 h8 j0 f
            DWORD wCount1;! g4 }1 W- H" e6 E
               
+ a% G% ?! j) R/ b( m: U/ B* j7 j% Z6 ~+ D

+ {/ g, X9 k5 y# Y5 b        unsigned char str[8];
. g- p8 H& |" l- Z( k                 
( d( l! E) k5 i$ G    hCom1 = CreateFile("COM4",: {! R) E$ }2 f+ ?$ j' A/ d. L
        GENERIC_READ | GENERIC_WRITE,
+ i7 `/ J4 n& T2 ^        0,
, |9 p- A6 ?; D' F" E, h5 h        NULL,
8 D% w* o: `. m+ s) ]        OPEN_EXISTING,/ z, o; x, D* s
        0,2 X6 F) W7 B1 ]% R, J
        NULL);
- Z! v* \/ s* \' h9 a
6 B5 q' T; W: D! X
. p# N0 [# O: u4 y2 {' r        if (hCom1==INVALID_HANDLE_VALUE )" k/ P* L5 s5 J7 E* Y# P6 `
    {
1 z0 u1 Y4 m( o: _( O$ U        printf("read open failed\n");8 M5 m/ U0 Q' F; f9 D2 A
$ G( Z+ y9 r- `& ^: \7 y
    }! K( b' j5 D+ G/ ~
    else
7 r0 l9 i' W: ^3 u! |    {
2 w: o/ R0 S, t2 w0 a3 k1 `        printf("read open successed\n");
1 \) S5 r. B$ k% h    }3 t4 n+ `- j$ C3 n8 c
    SetupComm(hCom1, 20480, 20480);) Y, y9 f. v) B( z- N

0 u5 q" R% E+ E2 l    //COMMTIMEOUTS TimeOuts;  
, f4 I) N( B: o$ x    TimeOuts.ReadIntervalTimeout =100;* b% a2 P! H& j8 l. X7 ~9 m. ?
    TimeOuts.ReadTotalTimeoutMultiplier =500;% S& d/ Z3 a0 F% X  L$ R
    TimeOuts.ReadTotalTimeoutConstant = 5000;   ; d1 o; M/ \" J, |' a/ u/ X' x4 Q
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
: B8 l) C- J& Y  T    TimeOuts.WriteTotalTimeoutConstant = 2000;8 j( G& M+ P# f$ p7 N  L" g
    SetCommTimeouts(hCom1, &TimeOuts);
3 s( y( \1 {- x+ A3 B9 g% N  N  X* I( G" B
    //DCB dcb1;
: [% ~+ ?+ {8 l) k, f; r5 {5 p    GetCommState(hCom1, &dcb1);
2 _) a4 V) q* s' U) F; t& E    dcb1.BaudRate = 115200;
# U( [0 s* _. \5 T2 G' a5 o$ f    dcb1.ByteSize = 8;//一个字节8bit
; n( F3 @) K' W    dcb1.Parity = NOPARITY;//无校验
5 _1 ]1 s; N/ N# F- K    dcb1.StopBits = ONESTOPBIT;//1位停止位$ t% r- z& R1 O8 E8 L
    dcb1.fParity = FALSE;3 r* Y+ a: G4 `- v! P
    dcb1.fNull = FALSE;
* a# \! ^9 W5 R# ^, S# c. x6 N    SetCommState(hCom1, &dcb1);" @8 M: T$ d% U* u$ x1 Z

$ w6 S. ~( ]& m" ^    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
- V7 q) f5 J5 ]  _4 @: f$ q* N2 j+ M; o; c; g

, Z8 X' z" |+ B6 ?. M' h        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))( I8 o4 P6 T4 j) Z8 B* Z
        {
) ~( }7 W3 W, y% k2 ?( _            printf("read failed!");
& d4 c' a0 b1 `. S5 J7 {
9 a4 X5 d8 E! M! o. _1 f        }9 X/ G* ]' A( S% h% J
                else( o3 y9 v8 t, h4 u/ }
                {
3 h+ t" h1 J+ m8 [        printf("read successed!");
+ H. I. {, K, x9 F: M1 Y* d) ~4 P+ ?5 F* u
; F. V1 s% H1 K- |' i! [8 M8 ^$ l0 m
        printf("wCount1:%d\n", wCount1);
- S# Q& r( `+ M- Y
9 @9 X/ S6 x2 i3 N6 e               
# j' r, ~8 D+ M, t; a+ F3 A2 x1 M                printf("read data is");
( a+ X, a3 M$ Y# Y                for(i=0;i         {3 E% S# H; Q5 f! a
               . }4 F5 Q9 F+ ], L5 e3 e- ?% ^) t5 a
          printf("%02X", str);
: v, c/ `4 e: D+ g8 h! H        }
, v' m8 L( e$ g1 |+ I! t) ~8 r  w                }7 o7 \- d7 t" G, y  z8 {7 m

- [4 P% ]# ~( `5 V0 D9 C5 z% p9 T. c2 m# b0 M! {
      
2 C1 N' x& x2 C, n" R0 r7 M5 w, X! l; f  c
CloseHandle(hCom1);
- n' s% t4 o5 l8 x- |4 u6 R, i& R3 [5 H0 \" w# |" O6 o  W
// system("pause");
# _6 d( B% }/ r" a) b( l$ Q. u9 j2 ?. U* R( F3 U. {5 ?  a; z8 c
}" V! g% z; ?2 Q: ~4 |
代码贴上来了,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-6 03:13 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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