一页纸鸢 2024-03-21 10:58 采纳率: 14.3%
浏览 9
已结题

winform SerialPort 通讯

winform SerialPort类通过485向机器发送指令

下面的是通讯协议

img


连接按钮实现连接,启动按钮发送指令操作机器,现在的问题就是通过通讯协议发送指令,如何实现方法

img

  • 写回答

13条回答 默认 最新

  • churuxu 2024-03-21 14:20
    关注

    串口怎么发你网上肯定能找到参考,这个代码是从参数得到报文,如有问题可私信我

        //控制请求
        class ControlRequest
        {
            private byte[] data;
    
            public ControlRequest()
            {
                data = new byte[8];
            }
    
            //设置运行方向(0或1)
            public void setDirection(int direction)
            {
                data[1] |= (byte)(direction << 6);
            }
    
            //设置设备编号(1-31)
            public void setDevice(int device)
            {
                data[1] |= (byte)(device);
            }
    
            //设置直行速度
            public void setMoveSpeed(int speed)
            {
                speed /= 8;
                data[2] = (byte)(speed);
            }
    
            //设置转向速度
            public void setRotateSpeed(int speed)
            {
                speed /= 8;
                data[3] = (byte)(speed);
            }
    
            //设置转向高速低速(1=低速 0=高速)
            public void setRotateFreq(int freq)
            {
                data[4] |= (byte)(freq<<6);
            }
    
            //设置转向方向(1=左转 0=右转速)
            public void setRotateDirection(int direction)
            {
                data[4] |= (byte)(direction << 5);
            }
    
            //设置转向角度(0~160)
            public void setRotateAngle(int angle)
            {
                angle /= 5;
                data[4] |= (byte)(angle);
            }
    
            //设置延迟归正时间(0~1270毫秒)
            public void setDuration(int duration)
            {
                duration /= 10;
                data[5] |= (byte)(duration);
            }
    
            //按已设置的参数获取用于发送的字节数组
            public byte[] getBytes()
            {
                data[0] = 0x85;
                data[7] = 0;
                for (int i = 1; i <= 6; i++){
                    data[7] ^= data[i];
                }
                return data;
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月21日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度