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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#define _CRT_SECURE_NO_WARNINGS; @1 {8 Z' v' u5 X
#include8 r2 B. ~' `% W7 E6 S; f* _! J: A
#include1 D5 [. J5 H. V& ^# K: C
#include "tchar.h"
+ e4 S% d6 _; o6 \* D
7 w4 X# d0 b( \3 y" E1 ~7 a" W#include! q8 H9 j1 Q9 q9 p6 {- ~* L" Z0 w; ^
#include
% n8 M( S) Q& A9 Y$ E, Q* d( q+ p8 n) [9 t$ E8 ^- h
  E) z* ^' C8 M
int mAIn(), c( l2 F2 K4 p1 Q% K* m3 c- C6 z3 D
{
# g/ A$ \$ C- b" G1 t                HANDLE hCom1;8 f6 f9 V+ |- l2 F9 O3 g
                COMMtiMEOUTS TimeOuts;  
' n9 g8 O6 L4 r4 ~  s                DCB dcb1;
- M+ g; R! |; v. w7 ]! A# l                DWORD i ;* V& f4 O0 v& D! R
                DWORD wCount =4;+ }; n: H$ u& J5 K0 Y. l4 Q
            DWORD wCount1;# o, J" V5 X4 y; ~
               
% f3 ]$ r8 p' {; |* i
' @3 \1 F( f6 r& b% `% k2 P, V5 t8 U
        unsigned char str[8];
9 M+ u" h( F" z. j. v                 
- k2 k! L7 Z& s+ p  Y: K" b    hCom1 = CreateFile("COM4",
2 N' c6 |8 M+ n& d! r+ k7 y        GENERIC_READ | GENERIC_WRITE,& U, Z& m" C; b* o8 x6 B9 C
        0,
# D- M9 }  y2 e7 @# f, W        NULL,6 S5 M: p; i* T  `
        OPEN_EXISTING,0 _$ ^) m4 O) o2 z7 m
        0,& a6 p1 t& @, O' F: Y
        NULL);
0 L% [( i1 i% K) s) y: }
/ k* {9 |$ `8 L* u) m' s! E* |
- y; M- p: R+ u' C, j1 H        if (hCom1==INVALID_HANDLE_VALUE )9 z# ~0 `- v" M& ?. a
    {
1 S' ]: y* f6 S1 a8 f5 A$ O        printf("read open failed\n");, Q" ~% w; G0 {0 x7 s( K' ?
# Q9 z+ v* t( u/ Q; p' z% {3 J" Z
    }
& W9 \1 o4 J$ h& H+ P    else
; Y. I" ]3 a" Y7 f    {
& w6 r2 |4 J7 I- C" r  B        printf("read open successed\n");
9 Y0 Q, x8 r; }* [    }4 q- w$ E% K3 g& ~) D* C2 h
    SetupComm(hCom1, 20480, 20480);
1 F2 l% {; Q; e" i# j% l
, T1 {4 Y7 t$ |3 s+ N" J    //COMMTIMEOUTS TimeOuts;  
! o- m* _! {4 @    TimeOuts.ReadIntervalTimeout =100;
; S  J" U/ [0 E4 p! _: f  v    TimeOuts.ReadTotalTimeoutMultiplier =500;
$ T4 i3 m  ]% S) C5 ?: ~    TimeOuts.ReadTotalTimeoutConstant = 5000;   
$ Q1 R/ ^. F$ H1 q$ f: W: L% F    TimeOuts.WriteTotalTimeoutMultiplier = 500;
$ `  W/ j3 p* }    TimeOuts.WriteTotalTimeoutConstant = 2000;
& c3 W. d' z# k+ c  x    SetCommTimeouts(hCom1, &TimeOuts);
+ x' F, Z( `! }$ o" z
# J, V! `8 X/ T2 ~) }# l  U9 \    //DCB dcb1;
; k) ~, z" @8 J5 ]$ g% J    GetCommState(hCom1, &dcb1);( i/ w1 _& c% J0 r; o" ^9 \
    dcb1.BaudRate = 115200;& ~* n! J7 k- x( J" e9 I8 m
    dcb1.ByteSize = 8;//一个字节8bit
: n/ o& H+ Y* k) I; ^    dcb1.Parity = NOPARITY;//无校验
, K+ q4 T4 h# m- c" M3 s- F% J/ D    dcb1.StopBits = ONESTOPBIT;//1位停止位
+ U! u) `8 p) K) l$ U, l    dcb1.fParity = FALSE;) K( l; g1 C6 J* G
    dcb1.fNull = FALSE;/ U  p; g: v2 Q" B
    SetCommState(hCom1, &dcb1);
8 P8 m0 m, T5 P6 f+ u1 j* @  _
/ o* s' h4 Y  [# j    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);
$ l6 L7 @4 c4 `' R+ d" i) z" v/ R3 x1 E& s
) p8 y: L- D$ b7 W' a! A
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL)): @' O9 k! G: a- j
        {
; I: E' S5 e% X7 J, N. m1 V            printf("read failed!");  D6 K9 ]  E7 w( J9 P

: `, N% h; ^5 l0 S) ~* {6 t5 i0 N) q        }
$ n! w& Z" K6 \3 _                else
  z! N! n) {4 v# |9 ?! x) W                {' k. ]2 ?# I4 j8 I. ]$ Y
        printf("read successed!");
3 Z8 L+ F7 u% U: x" l/ q- ?8 @
" L) ?* R4 C. t* Q+ e; s4 M! U$ Q* d: f( l4 G3 U" l2 [6 y0 O
        printf("wCount1:%d\n", wCount1);7 f! O8 g2 Q8 G3 G4 |' Q5 @. b

! {7 o1 n: k2 Z1 G" O: j  v# f$ @               
- ~! G- A2 H2 d                printf("read data is");" a2 ]8 v; A4 {& e" G0 ~% N; F9 n
                for(i=0;i         {, d* y  D% q3 v8 e1 S6 ?
               ) _+ V4 a9 ^9 P# g* L( r$ h
          printf("%02X", str);
2 G. |0 q% P" w0 \# E6 t        }2 y) l6 M. E: {/ q0 D. r; |; C
                }" j; @" B2 J$ v: B+ }
' ~$ i" c. j9 A; s; S5 F
9 Q0 W9 }6 |) N3 P/ Y, K/ ]
      ; b" m& y! a2 s) p$ h9 b
% I" }! Z6 F# x2 v5 Z; E
CloseHandle(hCom1);' j6 I" s$ P( f, e  E

  K  i! z# i8 m& U4 t// system("pause");
: q0 e5 D$ q' H! K  `
, u& O- E. O( `% X}! n; R' n9 e$ Y# a0 m
代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,感谢。
# k$ Q  l( _' |* l- K% x4 l' h
. o. L) X# J2 {# b! w* r$ n0 j. g8 `0 Z  R2 h

该用户从未签到

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-8-2 03:17 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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