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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS9 c. t0 w3 _3 s: B
#include6 `' X: Y, p- i
#include
" x8 m' |, E' s" J$ K: N#include "tchar.h"5 J3 e+ d% M7 G2 |1 g

* {- R* X1 B* h5 V  V9 M#include' r- f) S! r( Z0 x* ~7 R
#include  G' Z) T4 d( S8 D
1 w9 X% r1 z- d
* V. b  i6 E8 G  r$ \( L
int mAIn()+ A# a! Z  L/ L$ f
{
( X- j( b1 |% ^9 w1 p: y                HANDLE hCom1;2 Z2 Q0 d% }, z
                COMMtiMEOUTS TimeOuts;  + C6 R: W7 G) y$ W- Y; Q# u
                DCB dcb1;
2 |% I) h9 J+ \, Z6 |' _                DWORD i ;. Q0 V% j( O' ^+ P
                DWORD wCount =4;9 E, j  _  O2 _6 }  U  C1 i1 z& E
            DWORD wCount1;4 ?: B" Y9 z. s: y" e' d6 ?9 M
               ! g; X8 }4 E/ R# \9 S( G- F/ Y. L& z0 ]

0 ~, Y: y" F# o0 R* x) ~5 B# e$ J  h3 Q0 {" s- a( Z3 [% h
        unsigned char str[8];+ H* E3 N& I! O& U7 P
                 0 J# e. A& V2 i. b
    hCom1 = CreateFile("COM4",
# C( k! h. ]- \4 C        GENERIC_READ | GENERIC_WRITE,
; q# o$ n0 ]3 S, }        0,4 Q$ A$ ~" r/ u& E+ \5 G
        NULL,
" Q' Y4 ?3 L  m        OPEN_EXISTING,& I( @0 g0 p% x: e0 i$ a1 j: ~$ t
        0,( h' ]* h& X1 E
        NULL);4 ?: g$ J; `- R7 o; @
* q& x; Z! ]& X3 E7 M  \" {( \

3 {( y5 D) x# v. E$ W5 ?) B+ J' D9 W/ ]        if (hCom1==INVALID_HANDLE_VALUE )
! o: k5 Z6 n) ~  t: ]1 U- b    {
  E8 F, Z7 e6 N/ J  H6 r& j: s        printf("read open failed\n");
: f; W- b1 A3 V, n
0 y9 Y- m( B; J# M    }6 g' m. w8 u1 Z
    else1 D5 E9 G6 y  `% c, U
    {
) {$ W4 |( r, F  ~+ r        printf("read open successed\n");6 n3 H+ [6 a: j* i
    }
0 D# z' Y' V- G9 G5 g% U: M: k% ?    SetupComm(hCom1, 20480, 20480);
% j) ?9 l, h4 P  e7 h+ C, j8 ]" R; P; j5 {/ ]% ~
    //COMMTIMEOUTS TimeOuts;  
' [+ |! n7 S' }" V    TimeOuts.ReadIntervalTimeout =100;
$ v: f/ b; i4 g8 V    TimeOuts.ReadTotalTimeoutMultiplier =500;; e5 U+ v7 u) z2 {
    TimeOuts.ReadTotalTimeoutConstant = 5000;   4 Y  G( x9 g& C  ?4 w8 U( g  o3 J
    TimeOuts.WriteTotalTimeoutMultiplier = 500;
3 r+ G/ \; n, X    TimeOuts.WriteTotalTimeoutConstant = 2000;
4 x$ F+ o" g# x. W, c    SetCommTimeouts(hCom1, &TimeOuts);
: \9 i4 O! O; X' K
+ v) K- h% Z" Z& L9 I7 E& C    //DCB dcb1;) Z% a- ]0 k2 J. U, L' d; `1 p
    GetCommState(hCom1, &dcb1);
1 [% \6 b( J2 `9 V    dcb1.BaudRate = 115200;+ z0 _/ Z" z' W
    dcb1.ByteSize = 8;//一个字节8bit
  m# |  N4 m' |% ]    dcb1.Parity = NOPARITY;//无校验, f% [; Y. c& n+ @+ F( @: g4 [
    dcb1.StopBits = ONESTOPBIT;//1位停止位2 o% H7 o. k  q$ q
    dcb1.fParity = FALSE;
2 r, |0 x$ c4 e* B0 J    dcb1.fNull = FALSE;
; w) ~- L7 Z) R2 f    SetCommState(hCom1, &dcb1);
) W% P0 a* ?3 J9 j
/ ~3 k, n0 ]& x" g. ~# S: I0 q    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
. y( `  V- x; d: C1 x* L  s6 m, e! u& e+ h% g1 z( w+ I

) F$ O5 {9 g: H; B3 i        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
- v1 ^" G; S/ X9 r! {. o        {" w2 k. `8 s5 h' N
            printf("read failed!");" T+ H) ?7 y4 |2 ?! ?

0 i0 g1 F) ?, W        }
1 q7 O; e1 Y; w                else" n/ `* a' @& y% ^) k3 Z  i
                {$ D3 L( w- M+ n, X
        printf("read successed!");
4 N3 P6 f' g% C2 G6 M# J! w; }* u: k# G& s

) W4 r& X5 \7 v/ l* x        printf("wCount1:%d\n", wCount1);/ ~( b) g: R& m( [
1 V5 ?/ F8 ]7 M, ~
               $ N4 w4 L: W" s' K5 ?1 b- u7 u1 _
                printf("read data is");( T/ Q$ J3 w0 ~4 s1 k% ^; {# f- X
                for(i=0;i         {
! D5 P* ~' ?  y1 `( G( `+ `               
( u5 K4 j+ V; i9 `  _8 u          printf("%02X", str);
# ?, O% d, ]: I; a9 u( E5 m/ b        }# \" K6 G8 l' W! X
                }
/ q* b. F+ z; b6 u& P% a: _% ?
2 E' v8 ?% ]# L! }* O- D3 j8 \3 U8 ]  i. R, n/ N+ H: i
      
! |" Z) U# M7 V9 U' R1 G5 L5 O' ^8 L0 ]: _5 `# w' \
CloseHandle(hCom1);0 @( c( U+ q% s1 k1 S+ p; j

4 B$ R4 F3 E: |8 x9 j// system("pause");
$ D; @% R, C% `( r" h( L) P, C1 N4 m" F- P
}9 M( y+ }; o" P& b+ J# B0 g+ i9 X! q
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。
" P+ J0 ^4 y5 f# s$ u1 Z) r% O( f8 d7 q' Z+ D( A9 s
: R5 D; x( F4 \

该用户从未签到

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-5-26 03:28 , Processed in 0.078125 second(s), 24 queries , Gzip On.

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

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

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