当前位置: 首页 > article >正文

C# Winform--SerialPort串口通讯(ASCII码发送)

1.代码部分

        private SerialPort serialPort = new SerialPort();
        private void button1_Click(object sender, EventArgs e)
        {
            serialPort.BaudRate = 9600;
            serialPort.Parity = Parity.None;
            serialPort.StopBits = StopBits.One;
            serialPort.DataBits = 8;
            serialPort.PortName = "COM3";
            serialPort.DataReceived += SerialPort_DataReceived;
            serialPort.Open();
        }
        private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Thread.Sleep(100);
            byte[] bs = new byte[serialPort.ReadBufferSize];
            serialPort.Read(bs, 0, serialPort.ReadBufferSize);
            string ss = Encoding.ASCII.GetString(bs);
            string[] parts = ss.Split(new char[] { '\0' },                     
            StringSplitOptions.RemoveEmptyEntries);
             if (parts.Length > 0)
            {
                string result = parts[0];//"BUSY\r\nEND\r\n"
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            List<byte> buffer = new List<byte>();
            buffer.AddRange(Encoding.ASCII.GetBytes("1111"));
            //buffer.AddRange(Encoding.ASCII.GetBytes("2222"));

            buffer.Add(0x0D);
            serialPort.Write(buffer.ToArray(), 0, buffer.Count);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            if(string.IsNullOrEmpty(textBox1.Text.ToString().Trim()))
            {
                return;
            }
            List<byte> buffer = new List<byte>();
            var shi = textBox1.Text.ToString().Trim();
            buffer.AddRange(Encoding.ASCII.GetBytes(textBox1.Text.ToString().Trim()));
            //buffer.AddRange(Encoding.ASCII.GetBytes("1111"));
            buffer.Add(0x0D);
            serialPort.Write(buffer.ToArray(), 0, buffer.Count);
        }

2.小结:

最近在测试部分硬件底层通信,写了一个自用的串口Demo记录一下


http://www.kler.cn/a/395047.html

相关文章:

  • uniapp Native.js原生arr插件服务发送广播到uniapp页面中
  • Selenium 和 Playwright两大框架的不同之处
  • uniapp跨平台开发---webview调用app方法
  • # 起步专用 - 哔哩哔哩全模块超还原设计!(内含接口文档、数据库设计)
  • 一个比RTK或redux更轻量级更易使用的 React 第三方状态管理工具库的配置与使用
  • 环网冗余CAN转光纤 CAN光端机在风电项目应用
  • linux 能显式修改文件的最后一次访问时间和文件内容最后被修改的时间,不能显式修改文件状态最后被改变的时间,为什么
  • Leetcode 3352. Count K-Reducible Numbers Less Than N
  • vue el-upload js 上传文件只有uid
  • Linux自定义终端提示符
  • 基于Spider异步爬虫框架+JS动态参数逆向+隧道代理+自定义中间件的猎聘招聘数据爬取
  • 一文了解Android中的AudioFlinger
  • C++ 数据结构详解
  • uniapp: IOS微信小程序输入框部分被软键盘遮挡问题
  • Vue2:组件
  • 常用服务部署
  • Python学习26天
  • SpringBoot(二十三)SpringBoot集成JWT
  • Ceph 中Crush 算法的理解
  • 【Linux】-学习笔记03
  • 【LangChain系列7】【LangChain实战—客服机器人项目】
  • Javascript中的深浅拷贝以及实现方法
  • CSS 语法规范
  • 【卷积神经网络】
  • 关于k8s中镜像的服务端口被拒绝的问题
  • ubuntu20.04 colmap 安装2024.11最新