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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS  C$ m$ O( A5 ~2 ?' H9 g# W
#include
) B8 I$ L+ |1 @6 q4 @! Q) G$ ~#include4 |0 Y% W- u, ^* W* X# m: Y
#include "tchar.h". s4 @7 k- R* C; H  Q

) G  D" A2 M+ j#include
  i+ L% k" \: m- ~3 {' v#include; y" B8 s  A( O) {* w

6 e/ W! i" S; r8 f5 f# V
1 A( L" x% Y" f* X- Qint mAIn()
' t' V8 v! Y7 T3 T& C, f/ u{
6 ^. }8 y; S* H- ^/ F* E9 X                HANDLE hCom1;
  M0 n3 y5 b" ^8 K% b                COMMtiMEOUTS TimeOuts;  
. l, H. C; V- N1 U+ C! e9 [# y- U                DCB dcb1;
% a8 l! {4 N9 {! o( G% b                DWORD i ;
; {) J$ x, M0 ^9 z& l6 C# S; }; L                DWORD wCount =4;8 m' @+ P- z& X1 V5 {/ ]
            DWORD wCount1;: j& q; C/ V& q1 V5 L/ ^
               
' o& c4 _/ f* R3 P% j+ K) i( T
; K8 v! T8 C+ F/ g4 C# a, @
) W2 H$ F, t3 y; V        unsigned char str[8];
( v4 \) P. ~. T: r                 % @6 U' @! c6 ^, a: ?- Z0 g
    hCom1 = CreateFile("COM4",' G) Y$ a5 L  @" a( l
        GENERIC_READ | GENERIC_WRITE," G. a7 }" u; l6 N( ]) w# I$ Q. u
        0,
$ B* V8 w; j: j+ g# t  g        NULL,+ d! ^& j( x- I  G, j9 c2 [
        OPEN_EXISTING,/ @' i4 {7 N' O) }
        0,
4 B' S! x& ]3 s# D        NULL);9 x; E. K  p* c" \* h
0 w4 H; B0 T5 i

5 j% m6 S- A9 l8 j) Z        if (hCom1==INVALID_HANDLE_VALUE )
3 V% E4 Q: G' z0 O( T    {' P1 O' `5 Y) K; Y5 E
        printf("read open failed\n");7 C; J, V. e1 [- H9 e1 e

$ ~2 q6 t' V2 E+ d7 E+ ?% Z. N    }9 f1 g9 A7 d/ H' {
    else5 }. J, y6 P3 N% L3 l7 c2 v! s( q
    {4 q1 u" P& a9 V9 o8 N. n
        printf("read open successed\n");0 b% B' H# f8 _5 Q! c2 [1 B
    }
4 y, ]/ z6 d* C  ?/ T    SetupComm(hCom1, 20480, 20480);0 w3 e* \" g# D# R3 U0 Z
7 K5 x7 `; H- a+ `: G
    //COMMTIMEOUTS TimeOuts;  
* L$ @; C0 F) B' c# \    TimeOuts.ReadIntervalTimeout =100;* Q8 j5 p! ^$ ?9 \7 C, \, Y
    TimeOuts.ReadTotalTimeoutMultiplier =500;: K  \$ }: J  T& K$ v5 ]% h0 S
    TimeOuts.ReadTotalTimeoutConstant = 5000;   % f5 x, O* J* p5 P$ Z7 z& N) s
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
; U' `, o& z) ]0 X1 W1 Q0 D3 Q    TimeOuts.WriteTotalTimeoutConstant = 2000;7 e& p! G  m+ ?& I$ }, d2 U: S
    SetCommTimeouts(hCom1, &TimeOuts);
' U9 B" ~; E$ `! z5 J
' S" Z% N4 e+ G- E5 Q' v2 o) ?    //DCB dcb1;
! X0 Z: [" \- h  |    GetCommState(hCom1, &dcb1);# @3 l7 `9 u8 _; u
    dcb1.BaudRate = 115200;
; A9 \7 e. x$ P. t* f    dcb1.ByteSize = 8;//一个字节8bit
$ G& R; z( L0 r: o- U, q! [    dcb1.Parity = NOPARITY;//无校验
: k  I* O# T3 j% N+ ^$ a0 h    dcb1.StopBits = ONESTOPBIT;//1位停止位5 p9 d6 z4 e4 d6 w+ m; r
    dcb1.fParity = FALSE;" _7 ~3 m7 S( H, a. _  K. R; K
    dcb1.fNull = FALSE;
1 }5 Z! l7 h* u5 k2 D% x- R    SetCommState(hCom1, &dcb1);- W: {  M/ h7 q$ L! R* o
! ?, }( X. z* h" x) h
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);  C7 g  L2 V2 o7 ]5 t/ r( r

% y$ F3 v) v; V. s7 I; _8 F! h$ j  y* Z- v
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
" K7 b. M$ f8 e2 s/ f        {
! x5 `' Y5 o# ~! O* S% l( m/ C            printf("read failed!");" e/ L& f+ s2 m+ Y. H& l
* D7 K) X& l% ?3 `) R+ K
        }
! |/ G3 ^0 e1 [$ m! O; x) d                else8 l3 Q( d, O% P; s1 ]# W; i
                {
" Z7 n8 |" v4 B8 A        printf("read successed!");
/ d5 f: b3 c$ [2 e6 \2 a% w5 H% s1 T8 H& x% |& j
9 E; S' M; Y4 s: W  A
        printf("wCount1:%d\n", wCount1);7 b! \* w: B" [* f1 c3 B# S

* z; k% J* R; G: f9 d9 ?7 K: K               
' g5 K0 ~% a( _                printf("read data is");! L3 d3 g' Z$ F" ^8 X2 \: d! y9 ]8 u0 ?
                for(i=0;i         {$ k- b  v0 e& F" F  R
               3 ]$ u5 p. _* q0 c, I
          printf("%02X", str);
- a2 k1 x0 ?! g9 u' p$ [$ X        }5 T0 \% N+ o* b! ]9 [1 W, D
                }+ i) p! k% K& @" C3 W- [: L' N2 c
% M7 v2 I! E- ]/ O0 X" [5 U

9 v' g, _1 G9 C* E. T/ h0 a      ; e0 `: ]4 o7 t/ Q! @2 C

% y* B7 D& j2 @1 i+ E" J  o! [0 vCloseHandle(hCom1);
5 u: ^; l+ Y$ W$ O. J
# d. R. g& @0 n* D# }1 r5 U9 E; G: t// system("pause");
0 s8 d7 m. h' x, p. @5 x
3 w8 H3 y! U' c. {0 L7 ~) U}
* C6 Z% {6 B1 l& ?  s0 `代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。2 _* q' J1 r. T, E: \

5 i2 i) U0 Y" R0 _* f* c) r3 f+ O& @/ e  E; l( O( ^7 E. d

该用户从未签到

2#
发表于 2023-3-14 15:34 | 只看该作者
先确定能不能发送数据和接收数据。

该用户从未签到

3#
发表于 2023-3-14 15:58 | 只看该作者
想问一下波特率是多少,然后你发的什么数据呢?

该用户从未签到

4#
发表于 2023-3-14 16:14 | 只看该作者
把它和发送代码合成一个c文件它就可以接收,单独的c就不能接收。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-4 11:07 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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