C# serialPort的DataReceived事件无法触发 ,用的霍尼韦尔的扫码枪并且装了相应的USB转串口驱动。...

本文介绍了在C#中使用SerialPort类处理霍尼韦尔扫码枪在串口模式下数据接收的问题,重点在于设置正确的串口参数和事件触发条件,包括设置ReceivedBytesThreshold、RtsEnable和DtrEnable属性,确保DataReceived事件能正确触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天想试试霍尼韦尔的扫码枪,扫码枪有两种模式,键盘模式和串口模式,

1、键盘模式直接插上就行了,就像一个键盘一样不需要任何驱动,扫出来的数据直接落到PC的输入焦点上。就像一个键盘一样,只能输入字符。

2、而串口模式,则是安装驱动以后,能够虚拟成一个COM口,

如果我们用扫码枪给应用程序输入数据的时候肯定是不行的,因为程序需要能够在后台运行的时候也能用扫码枪作为数据输入的。这就需要用串口模式了。

今天我写程序的时候,问题是怎么也不能触发,DataReceived事件,最后发现问题所在,几个要点

1、串口必须New新实例,必须和能够正确获取硬件串口的名称。

2、sp.ReceivedBytesThreshold = 1; 这个是默认值就是1,就是有一个字节的数据就触发事件。

3、sp.RtsEnable = true;sp.DtrEnable = true;这两个属性必须得正确设置,哈

我就是因为第3个原因一直不不能正确触发事件。记得添加事件绑定代码啊。

 

public partial class Form1 : Form
{
SerialPort sp;
bool bIsReading = false;
// Dynamic d = new Dynamic();

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
bool b = false;
try
{
sp = new SerialPort();
sp.BaudRate = 115200;
sp.DataBits = 8;
sp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值