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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
; D5 [, \# t2 A1 O
1 O. r; R  R2 k+ @; _#define _CRT_SECURE_NO_WARNINGS) ~4 E' V% S8 v( S) p
#include
! n' D% w: X/ G. o% n) q#include9 ~) d( o2 {2 m5 q/ F4 J
#include "tchar.h"
4 r$ l5 x) B+ Y+ P; g' o! j) N: \6 f! u; L$ w2 L$ C- A% v
#include
' Y% N4 r& Z  W- T( o( u#include" p6 |8 O+ F3 Y8 O  F% I$ q
# V* q2 V4 i4 ~5 V3 L1 m* N

7 Z8 t; b( ]) l& T  Q* R+ Uint mAIn()
0 v5 M( s* f- u2 _/ c: k7 Z5 \& N{
! j% h. d3 D, u' J                HANDLE hCom1;4 b# `+ W/ c# a/ U+ f6 P5 x( k
                COMMtiMEOUTS TimeOuts;  9 J) ]/ j; J8 q
                DCB dcb1;
! b: C3 i. P- S2 ]$ ]& B& C3 p                DWORD i ;2 E: N$ u  x6 U
                DWORD wCount =4;: O5 E/ c9 h9 Z0 o+ e0 z5 G
            DWORD wCount1;% _# }' k! e7 b
               ; D* {0 x& y+ U$ p( A) F

. y( {; d3 y6 U7 Q/ E, O& G
1 [* |4 X) s% S! V' o( H6 O# D4 h        unsigned char str[8];
" m- j+ b6 L6 T                 
% d9 j$ `# X4 }3 k( F9 m    hCom1 = CreateFile("COM4",' I, j+ g! U$ M. y. B/ s' O
        GENERIC_READ | GENERIC_WRITE,
# ~5 t% K. U' G" S: X4 @$ @        0,' c5 [5 ^, q$ S2 V$ _
        NULL,
. h% m' m  d5 R; U/ v! M        OPEN_EXISTING,4 Q# a. ~5 E6 @6 I- d
        0,
/ h" x$ O) J6 O" a, \3 m        NULL);2 I( p; Y% o) ^, c1 s/ l$ a1 b
% n% T; V2 O: }0 ?# V& D

/ ^& H2 \8 k& }5 }: r        if (hCom1==INVALID_HANDLE_VALUE )
* ]$ [2 E* B: S( H6 A    {
( ^+ K2 `! Q0 U+ p        printf("read open failed\n");1 L1 Q, K1 U  j" l

% l" K2 |, n% q8 E% E  n; s    }
  \: V6 ?( p3 [) d3 _    else
' L3 t1 _  n. _5 q0 G/ v/ F# p    {0 K5 I7 O9 Y- [: Q. E# s
        printf("read open successed\n");6 P9 h1 E+ \6 `. \! F7 g( \6 w7 t
    }- m1 F0 W( Q  f6 N: H6 @
    SetupComm(hCom1, 20480, 20480);# k. Q: ^5 ~9 E  h% p$ o

* N9 n3 x+ J% x* _6 |; I" \    //COMMTIMEOUTS TimeOuts;  4 x. a% G: h7 r/ j
    TimeOuts.ReadIntervalTimeout =100;
, W+ `: k; V# D. r    TimeOuts.ReadTotalTimeoutMultiplier =500;
1 o+ n& |0 S" x  c    TimeOuts.ReadTotalTimeoutConstant = 5000;   ; P: T! o. A% K" n, \& L
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
; e% B6 O  M/ y, q    TimeOuts.WriteTotalTimeoutConstant = 2000;
* u: c4 }5 v  H$ Z' E    SetCommTimeouts(hCom1, &TimeOuts);$ B) u, [+ ]& R' G( t

3 `* z. M6 l9 ^7 j% L& C& g: S    //DCB dcb1;
8 W* P, u+ R6 @" J; f    GetCommState(hCom1, &dcb1);( r  M3 Q# W4 y* D; ?
    dcb1.BaudRate = 115200;
( l) G9 L: T8 Y0 x    dcb1.ByteSize = 8;//一个字节8bit
' g9 Y% V4 z0 H* H; }; x    dcb1.Parity = NOPARITY;//无校验
- n1 k; j2 w+ e- f' L    dcb1.StopBits = ONESTOPBIT;//1位停止位- V  J; S8 o. T( V
    dcb1.fParity = FALSE;
1 ]5 H2 f2 g5 R7 R9 b    dcb1.fNull = FALSE;
8 S; r1 O& G  n. }0 H2 Z) w) X    SetCommState(hCom1, &dcb1);
. M7 H/ H5 C- k5 f& I: K( {6 T# g) m7 Y
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
  g9 y' p( F( g) {# t) v8 K
2 d( }5 u- w* F$ ]7 f  g9 @4 ?( l2 Z, A
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
9 a: ^6 W% f4 X8 O, {- A# w7 S: {        {; A; k4 S  b, t: R: @+ W+ \
            printf("read failed!");- K8 M- Y, x9 X$ t6 Q& W

3 ]. [% x5 x9 K        }
) s. W/ x# h" @8 h" b; e! f  s) N                else: Y  ~* p5 V1 u2 E( K9 W8 J
                {" }4 m5 W- o, n) b/ U
        printf("read successed!");" n; `/ O) \; x7 |% u; a, W

0 I0 U) l- l: ]; d4 u
  x% x4 N4 _8 U2 G- V        printf("wCount1:%d\n", wCount1);
5 m- b6 ]* T2 ~) `
+ D* n0 ^5 E8 J6 ]& ?; e; t0 @               . N" M* v6 C  [: Z
                printf("read data is");7 j0 U; L, @+ m
                for(i=0;i         {
9 ?$ d4 u8 m% f& w               - k% Z% T7 u2 h
          printf("%02X", str);2 P; S6 G$ B4 W2 E# B1 Y2 v! s
        }% Y/ e2 o( d$ @( O! x) w+ d
                }, F! ~( q0 T8 O7 e

) F* M9 T& w) V% R0 C) P
6 I! M! G! m) V- H$ y+ |# R$ X5 ?0 u      7 N% n) I; y9 ~$ F* j1 Z6 J
+ G7 R2 b, T$ u) l- i( g) [
CloseHandle(hCom1);/ \  |# m& I4 P: Y: H7 T9 d1 m! p

: E( S$ f, x" d) ?. `4 _// system("pause");, J0 \- u( v6 I$ q
  T# o6 l) C4 |, p
}& O& l0 B3 l6 \  R9 K, N! {
代码贴上来了,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-8-18 15:25 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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