自己写的一个串口接收发送的小程序,向串口发送命令是应该有返回信息的
可是写的程序运行没有任何返回信息,求解
开始的时候测试的是串口那段一直有数据向PC端发送,这样程序是可以接收到数据的,可是改为串口端接收到命令再返回数据的这个之后就怎么也收不到数据了,向串口发送数据的方法应该没错吧。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace Testcom
{
public partial class Form1 : Form
{
SerialPort sp = new SerialPort();
public Form1()
{
InitializeComponent();
sp.PortName = "COM4";
sp.BaudRate = 115200;
sp.DataBits = 8;
sp.StopBits = StopBits.One;
sp.Parity = Parity.None;
sp.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
sp.Open();
}
//数据接收使用的代理
private delegate void myDelegate(string s);
private void button1_Click(object sender, EventArgs e)
{
string st1 = textBox1.Text;
sp.WriteLine(st1);
textBox1.Text = "";
}
private void SetText(string s)
{
listBox1.Items.Add(s);
}
//串口数据到达时的事件
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//关键 代理
myDelegate md = new myDelegate(SetText);
try
{
if (sp.IsOpen == true)
{
byte[] readBuffer = new byte[sp.ReadBufferSize];
sp.Read(readBuffer, 0, readBuffer.Length);
string readstr = Encoding.UTF8.GetString(readBuffer);
Invoke(md, readstr);
}
}
catch (Exception err)
{
throw err;
}
}
}
}
設置一下SP。ReceivedBytesThreshold = 1,是否能觸發數據呢?
搞一个串口助手,测下。
你好 请问我也遇到了这个问题,方便回复一下相关思路吗