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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
. ?4 b' @( u, v. S# T: @7 ~/ E
* C7 y/ f8 ?: w6 }* ^4 E% F#define _CRT_SECURE_NO_WARNINGS
+ K$ ]* V, G1 r  ^0 u* d/ `3 o#include% N- ?$ E. D7 x) q
#include5 P5 O: _) N+ [6 D1 n' }, n
#include "tchar.h". ]: E. k8 O' E% Q
3 n0 c! Y  |- ]( T$ B: F
#include0 M3 ]% q9 O" `# h8 Y
#include5 }- i- V8 f+ [$ }7 V
+ R: K/ E6 V; K; K0 P' s

$ {" g0 Y: Z1 e  k5 z/ [int mAIn()1 H3 o1 [1 {, c2 t) a& p
{
9 }, Q* V- X. i3 @( B8 D& n                HANDLE hCom1;6 X) W7 e5 K- P1 A+ G4 }
                COMMtiMEOUTS TimeOuts;  4 }) B& }: }4 B2 O) i9 s
                DCB dcb1;$ o1 |- U/ J1 `( ~/ {9 i
                DWORD i ;! \+ q( W+ }" s. f6 l0 m/ I+ ~% m
                DWORD wCount =4;
, f7 {$ H/ J6 D* O9 T2 }            DWORD wCount1;
. ?8 [  W) Z/ @/ G3 L  u* ^; `               
/ n% O0 c6 f" a2 K! k) W; F9 L
6 L6 q7 s4 d/ _, Y6 q* x0 D% L9 X+ G! g. r8 I! Q# t3 n
        unsigned char str[8];* M! n2 r7 [# n8 c& M  T5 A
                 
2 A0 P4 e8 \) Z& I+ \5 y  f    hCom1 = CreateFile("COM4",
" Y/ L6 x8 o$ d' Q$ u        GENERIC_READ | GENERIC_WRITE,  @% m9 J2 H! P" f
        0,7 Z! A  T( p5 y- d3 V! `
        NULL,
4 g8 I5 v; P% p$ Z: k        OPEN_EXISTING,
) R8 p5 U5 P2 j1 M" g        0,
& v* P9 Y; x5 }: ?8 p. N        NULL);1 b8 ]3 l8 j0 W( z& S. N

3 g/ l0 }) V4 L, ?/ r1 j6 f, G! D% L$ p4 V' P5 a: S
        if (hCom1==INVALID_HANDLE_VALUE )/ ?  ~8 O) ]7 b' i
    {
7 _5 s( w; G4 p        printf("read open failed\n");5 \7 A* d) l3 ~1 x. b5 o  P
. U/ A' x8 C) [. q% ~; o/ F& l
    }, s+ T8 d2 Z9 a% X# D
    else
8 }$ o! b+ h3 l5 |    {. C! ]5 j( R) `* g- i7 e
        printf("read open successed\n");/ E* q9 u$ |( H* |: x+ [
    }
2 h- M5 J9 B3 p9 W6 t% F9 m    SetupComm(hCom1, 20480, 20480);; ]5 j" W# r' N

( Z6 t4 }$ {2 H2 |    //COMMTIMEOUTS TimeOuts;  
9 F5 g2 |4 e: \4 D    TimeOuts.ReadIntervalTimeout =100;7 I0 h/ O2 e1 @- }+ q
    TimeOuts.ReadTotalTimeoutMultiplier =500;. k/ T! w  {' d+ q4 n6 }9 H
    TimeOuts.ReadTotalTimeoutConstant = 5000;   
5 H$ S& x& A8 {8 h  Y- U    TimeOuts.WriteTotalTimeoutMultiplier = 500;/ O+ B6 ~- t6 k( ^& N9 T& V
    TimeOuts.WriteTotalTimeoutConstant = 2000;2 t$ A, O$ k* ^; m( V9 @) \! H
    SetCommTimeouts(hCom1, &TimeOuts);
+ B8 S3 ]* d3 Z" |  K' J2 W. F% x' Z- q9 b& O) b0 `; _+ P9 D; @
    //DCB dcb1;6 |) \5 ~; ^7 k! g. r
    GetCommState(hCom1, &dcb1);
+ m1 E, l3 {' {% H/ N    dcb1.BaudRate = 115200;
. w( X, d# r/ O+ j6 {    dcb1.ByteSize = 8;//一个字节8bit
% p- |" d4 P6 o8 `( n6 D9 D6 H    dcb1.Parity = NOPARITY;//无校验
. }2 ^- r$ G& U/ e- i    dcb1.StopBits = ONESTOPBIT;//1位停止位& d* U2 ^+ m( _8 V
    dcb1.fParity = FALSE;( o, [9 f  i/ ^
    dcb1.fNull = FALSE;; g) b6 }" V* _9 D$ K
    SetCommState(hCom1, &dcb1);
! \: a9 q! F: i
8 C& `9 ~( w( h    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);; }, M1 o$ J( }
8 N6 T9 Z. P& d  p' Z0 |

& L! b3 |( p- T1 c$ k        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
0 k* ]; x' t9 {3 h( c        {# ?! A. z; c$ J3 \, i! W1 ^
            printf("read failed!");
  i* X) T4 n$ ^  v% Z# r% T7 u; w# v' S
        }
; {( ~: h& m4 y6 P. @# ?9 G+ X                else
4 V$ ?" g# }, H# j8 {# b8 B                {
0 d! s. `9 E5 I. m5 i/ J) G, j3 t        printf("read successed!");
, v% `6 h/ _* h" `
& P. K# F0 J. X# _- T& s; h- s% I6 T5 ~( f$ I2 ^: {
        printf("wCount1:%d\n", wCount1);. {( o- [3 A) z1 N% a4 [

% P4 U- L+ y* V3 S5 K- G- U" c( }               
' s. _2 L* X: R                printf("read data is");
) R7 Y, u& X( I! Q) L* W/ I& _                for(i=0;i         {
# e2 H; Y) m: F& @$ C1 h$ n, P               . j$ N7 E2 k4 K  C1 U' z& J
          printf("%02X", str);
" n( B$ w1 p/ s5 a) H/ [- Z' J        }' Z, J1 Q: D. a( T9 l7 t
                }9 w- W) ~4 p1 |1 p% q, d$ b( j

( A, B" b  N/ A7 B0 S; k- |: {2 m; P; K
      
/ C: F6 C) u- i4 l/ K5 y
: `8 P$ ~1 t; cCloseHandle(hCom1);
+ [' L8 o% [+ _: i" }0 c' f$ `$ Z: a% z# C
// system("pause");
6 C: G8 w3 r; Y
6 y5 a' t) I0 V  ?; ^}$ _+ ]: a8 ^* Y2 I' e( w' o9 [
代码贴上来了,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-8 09:43 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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