V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lynntox
V2EX  ›  C#

C#串口通信问题 求教

  •  1
     
  •   Lynntox · 77 天前 · 1077 次点击
    这是一个创建于 77 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我使用 labview 写的是没有问题的,通过串口助手发送产品也有反应

    但是在使用 C#就没办法正常通讯

    首先 我确认了线是没问题的,串口属性是没问题的 9600-8-n-1

    byte[] command = new byte[] { 0xAA, 0x55, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE };

    // 发送数据 serialPort.Write(command, 0, command.Length);

    就很奇怪

    5 条回复    2024-11-22 16:02:40 +08:00
    sunmker
        1
    sunmker  
       73 天前
    先打开串口,.open
    Lynntox
        2
    Lynntox  
    OP
       66 天前
    @sunmker 这个肯定是 open 了,写了两个 command ,第一条是没有问题的,第二条就无响应了
    hez2010
        3
    hez2010  
       47 天前
    官方文档有句注释:
    If there are too many bytes in the output buffer and Handshake is set to XOnXOff then the SerialPort object may raise a TimeoutException while it waits for the device to be ready to accept more data.

    检查一下你的 Handshake 设置。
    wangybsyuct
        4
    wangybsyuct  
       1 天前
    为什么是两个 command ?一个程序 command 里打开串口,另一个程序 command 是无法再打开这个串口的,独占了,另一个程序也就无法写入数据了。另外一个程序写数据也要间隔多少毫秒再写吓一跳,Write 返回 void ,无法知道是否写成功了。
    Lynntox
        5
    Lynntox  
    OP
       1 天前
    @wangybsyuct 我当时应该是想表达 有几条指令 有一条可以偶发触发 但是有一条就没办法 我当时写测试是间隔 50ms 去写一下 读写我分离去搞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:05 · PVG 22:05 · LAX 06:05 · JFK 09:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.