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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
串口c程序接收数据长度总是为0
8 k& N  L1 t8 A& ?8 n  o' J( ~' P
#define _CRT_SECURE_NO_WARNINGS
" N, M; g6 }/ u* k! q#include# X( @% }# G. s$ Y! ?
#include
5 x! _  G5 X( M3 J3 S/ ^2 z#include "tchar.h"/ ~5 S7 s  O' Z6 s+ d2 q" j

/ N& u0 o/ {; c7 i+ @* L#include
" [; u5 ?, T* N8 o' U& X" \#include( a/ k: H! |' w0 U* Q
" O2 z# a' u! M/ U5 F

6 u' K# \" u( W" s7 Xint mAIn()6 w" ?9 `4 Y8 v
{
6 M- K! V4 O$ A" D                HANDLE hCom1;8 Q# _& c1 d# i5 s2 J
                COMMtiMEOUTS TimeOuts;  
2 d/ J7 t1 W# E+ y9 b                DCB dcb1;/ j: F  v8 W+ _4 o" @/ E
                DWORD i ;
* w9 s6 A- H' M" N" U; P1 e                DWORD wCount =4;
" V" u' i- ?! b! R            DWORD wCount1;# s8 l& g; Z# I- p" g* b
               6 h5 V8 v" A* a9 v0 R8 L
% j& o% F  l$ S. H7 t. ^

8 P- U; D2 W  d3 t4 F5 V        unsigned char str[8];) `; k3 D8 s; i
                 4 u* T" D2 B; ?: t$ c
    hCom1 = CreateFile("COM4",
& @7 }( L3 ?; ~+ H1 y2 q6 K$ P5 a        GENERIC_READ | GENERIC_WRITE,
+ l/ }; i1 r2 i        0,
% _+ e/ e; C) ?        NULL,
0 G0 |9 m0 n8 u6 _7 _4 H        OPEN_EXISTING,, l6 q( D$ O  Z8 u
        0,5 [" F) K5 J' \2 m
        NULL);
( u( E# Y( z/ E) X# F8 _
) k" k4 s5 d$ N: i& N; G
) C0 D" q$ A* c% N4 T) o& s        if (hCom1==INVALID_HANDLE_VALUE )
3 m9 Y& j! V# c! @, x1 O+ o    {
$ P+ L, [; g3 s6 p        printf("read open failed\n");( {. T9 ?. j& k, N7 ~

- ~/ D  h# A( A+ q! n    }
2 ^; W  I( j" {- V! o/ E' u, F1 K    else
# A7 i- Z9 j- L7 T    {
5 Q; Z# w% O7 B$ h! e        printf("read open successed\n");
9 `  n- B6 x  N    }
/ P8 ]* ?- `1 `$ f( @+ T    SetupComm(hCom1, 20480, 20480);, A7 X2 }8 i) z0 M: `

& m! u$ O, v$ L, s* c" Q1 ~    //COMMTIMEOUTS TimeOuts;  
# W' V/ v# W  w) D    TimeOuts.ReadIntervalTimeout =100;% E) m1 L: z  T( ^6 x
    TimeOuts.ReadTotalTimeoutMultiplier =500;  p/ ^9 U4 s/ t. T
    TimeOuts.ReadTotalTimeoutConstant = 5000;   
. G. V+ k3 T, Z0 m6 x    TimeOuts.WriteTotalTimeoutMultiplier = 500;: \" ~' ~6 _& X* u) c7 _: D
    TimeOuts.WriteTotalTimeoutConstant = 2000;
. d7 h# h6 G9 |- t2 ^5 |# `3 @    SetCommTimeouts(hCom1, &TimeOuts);0 V. {$ l- |+ x5 f3 f. Q

5 B2 Z( r+ \7 h# l- Y9 X. J/ y( R    //DCB dcb1;* \' N- s/ _& q4 w/ Y
    GetCommState(hCom1, &dcb1);  u) ^# z* y; s9 y
    dcb1.BaudRate = 115200;  ^' l; A% g1 u; b) ]
    dcb1.ByteSize = 8;//一个字节8bit
- v' D6 M: y8 J/ x4 i8 ^; D; b    dcb1.Parity = NOPARITY;//无校验
/ b, }4 w& H8 _' O6 i    dcb1.StopBits = ONESTOPBIT;//1位停止位) z6 B# w! J; x9 _
    dcb1.fParity = FALSE;
2 Z  u1 ~0 O0 b  u6 T2 m    dcb1.fNull = FALSE;3 v5 b7 ]' o: E2 Y
    SetCommState(hCom1, &dcb1);+ h4 c/ D6 x) l3 u- W' X
+ O- m6 y% S/ I# S
    PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR);: d2 n, c9 R9 [1 l  @
" R4 N: J* U' ?: H% r
. c9 g/ D# }- f* K1 d( g- f- L
        if(!ReadFile(hCom1, str, wCount, &wCount1, NULL))
0 R) O" E( ?9 i. C6 c1 y        {/ o1 Y3 @) I8 y, ?, @
            printf("read failed!");
( s  P1 K4 L' G* _0 Y4 r
) c8 I: {' s7 I        }
& h. [& Y6 ^; K- |; a; D                else
+ |/ V" l* w6 o9 }2 O7 _2 U                {) r/ H! ]2 L  {8 O; n/ w7 n. |
        printf("read successed!");
& E: U5 k6 Z" {, T6 b. m* f
' j" I* u* ]  x+ c5 R2 C- ^, R/ Y* f- H4 N
        printf("wCount1:%d\n", wCount1);
9 @9 B; S# f7 W" m. Q" p: R! [! f& r- N+ y0 k% ~
               
7 M5 O7 r- E' |                printf("read data is");% Q# N% X+ K/ V
                for(i=0;i         {
0 {6 [8 i$ j6 f! M               ; P* w9 v) Q  X! f+ y
          printf("%02X", str);+ E6 h( `& f( p6 ~! S
        }# P8 F! o3 `" v' f. \
                }
* A- q' S. e0 G7 X% L4 _7 P0 k6 Y

) z' |5 r& Y( I& l$ c      
1 u2 m/ X8 a8 m' e2 y& N
2 o$ M0 q0 |1 n  _- y  oCloseHandle(hCom1);
. P% ?+ h6 m. X2 f
4 m5 C' p) Q. X: n. R// system("pause");: V: {+ F  _3 n! g% ]1 @, o
& L) V; r: l' S8 M' i
}
# f( k1 g' \7 F( m代码贴上来了,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-10-8 05:45 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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