c# 串口通信 线程-C# SerialPort 串口通信多线程问题

问题描述

C# SerialPort 串口通信多线程问题

编程新手,想C# SerialPort实现串口通信,写的程序大概这样一个结构。发送一个数据后,要求收到下位机回复,超时发送下一个数据。要加一个发送和接收的线程,是加在主程序里面吗?大体的结构应该是怎么样的?求大神帮助!O(∩_∩)O谢谢!
class SendAndReceive
{
SerialPort sp = new SerialPort();

    public void SearchSet()//检测有哪些端口

    public void PortSet()//端口设置

    public void DataStartSend(byte[] sendbyte)
    {
        sp.Open();
        //调用crc函数计算crc16的值
        sp.Write(sendbyte, 0, sendbyte.Length);

    }
    public void DataReceive()
    {
        byte[] receivebyte=new byte[8];
        sp.Read(receivebyte, 0, receivebyte.Length);
        //crc校验结果
    }

}
时间: 2024-09-22 12:56:48

c# 串口通信 线程-C# SerialPort 串口通信多线程问题的相关文章

C# serialPort 串口连接modem通信 64位系统不能通信

问题描述 C# serialPort 串口连接modem通信 64位系统不能通信 C# serialPort 串口连接modem通信,在32位系统是能正常通信,当发布 64位系统不能通信了?请大牛啊!! 解决方案 要是串口能打开就说明能正常通信,能打开则是其他原因,要是不能先检查64位系统上驱动. 解决方案二: 看看驱动,因为32bit和64bit,软件是通用的,但是驱动不行. 解决方案三: 把程序编译成x86,不要用anycpu试试

串口通信-c++ PC通过串口发送Versions命令给处于FTM模式的手机,希望得到手机版本信息

问题描述 c++ PC通过串口发送Versions命令给处于FTM模式的手机,希望得到手机版本信息 c++window api 实现pc与处于FTM模式的手机串口通信,处于FTM模式的手机通过usb线连接 PC,这根usb线是5ping的线,连上手机自动进入FTM模式,当我们向串口中写入Versions字符串时,从串口读出的是Versions字符串,而不是我们希望得到的手机版本信息,后来发现向串口写什么,从串口读取的就是什么,

mfc 窗口分割 通信 线程函数调用

问题描述 mfc 窗口分割 通信 线程函数调用 写了一个mfc程序将对话框分割进行不同窗口间通信.但是出现了如下问题:void MyFormView::send() //发送数据{ CMainFrame* MainFrame = (CMainFrame*)this->GetParent()->GetParent(); MyFormView1* battery = (MyFormView1*)MainFrame->m_wndSplitter1.GetPane(1 0); battery-&

热敏打印机-android系统pos机采用serialport串口操作打印机,打印出来的二维码不是正方形的

问题描述 android系统pos机采用serialport串口操作打印机,打印出来的二维码不是正方形的 Bitmap bitmap = Create2DCode("测试二维码"); int bmWidth = bitmap.getWidth(); int bmHeight = bitmap.getHeight(); byte[] data = new byte[]{0x00}; Color prefix = new Color(); int prefixint; /* * Set l

C#开发串口总结,并提炼串口辅助类到公用类库中

开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西,利用SerailPort组件,对串口的各种操作也非常的方便,由于本人总是喜欢把一些常用的东西封装成可供重复利用的类库,因此,阅百家代码,提炼总结优化,把对串口的操作封装成一个公用的类库,应付日常的串口编程开发,也算是工作的一个阶段性总结吧. 先上图,了解串口的一些基本的东西,并逐步介绍相关的知识.   微软在 .NET FrameWork2.0

服务器-关于基于socket通信的多用户客户端不能通信

问题描述 关于基于socket通信的多用户客户端不能通信 单个客户端可以接受到自己发送的消息.但多客户端的话,甲方发送数据,乙方可以接受,但乙方接受后不能发送数据,一旦发送数据,服务器就会崩溃! 解决方案 检查下你的服务器端程序,多线程同步或者哪里是不是有bug,加上try catch拦截下看看有什么异常发生. 解决方案二: 主要还是你服务器处理有问题.可以加一下log等来看你服务端到底是哪里没有处理正确.大多数是越界,指针操作不对. 解决方案三: 不知道lz考虑其他方法不,用comet可以实现

底层实现-外接了一块串口芯片,怎么对串口芯片做配置

问题描述 外接了一块串口芯片,怎么对串口芯片做配置 芯片型号是16c950,芯片手册上指名有三条地址线可以用来配置芯片寄存器,但是具体该怎么配置阿?有没有人来指点一下.芯片手册上没有做说明啊 解决方案 你的图怎么看不清楚呀??? 解决方案二: 图片是这个,大家帮我看看 解决方案三: 不知道怎么回事手机客户端没法传清晰的图片吗? 解决方案四: 串口配置

C#串口程序如何实现若串口接收两帧报文间隔时间大于10ms则自动换行的功能呢?

问题描述 C#串口程序如何实现若串口接收两帧报文间隔时间大于10ms则自动换行的功能呢? 解决方案 解决方案二:用变量记录接收时间下次接收计算时间间隔这很难吗解决方案三:换行怎么实现呢?解决方案四:加个n不就换行了解决方案五:非常感谢实现第一步换行显示了richTextBox_Rec.Text+=sp.ReadLine()+""+"n";继续调试

JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口

JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一.Thread 如何在自定义的代码中,自定义一个线程呢? 我们查看API文档,我们要启动一个线程,先实现一个子类, package com.lgl.hellojava; public class MyThread extends Thread { @Override public void run()