本文介绍了读取rfid读取器的数据时不会触发数据接收事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用下面的代码读取RFID阅读器的数据. 我有问题,
I used the bellow code for reading the data of RFID reader. I have a problem,
serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);这不称为sp_dataReceived事件. 但是数据正在进入COM端口.我在超级终端上进行了测试. 有人请告诉我原因.
This is not call the sp_dataReceived event. But data is coming to com port. I tested in hyper terminal. Any one please tell me the reason.
SerialPort serialPort; private void btnGetACNo_Click(object sender, EventArgs e) { serialPort = new SerialPort(); serialPort.PortName = "COM1"; serialPort.BaudRate = 9600; serialPort.DataBits = 8; serialPort.Parity = Parity.None; serialPort.StopBits = StopBits.One; //serialPort.Handshake = Handshake.None; serialPort.Open(); // Thread.Sleep(500); //string data1 = serialPort.ReadLine(); serialPort1.ReadTimeout = 2000; serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived); //sp_DataReceived(this , null); serialPort.Close(); } string data = string.Empty; private delegate void SetTextDeleg(string text); void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(500); data = serialPort.ReadLine(); //data = serialPort.ReadExisting(); this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[ ] { data }); } private void si_DataReceived(string data) { txtAccessCardNo.Text = data.Trim(); } } }推荐答案
serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived); //sp_DataReceived(this , null); serialPort.Close();
关闭串行端口时,如何期望它获取任何数据? 完成或在程序结束时将其关闭. 如果在此之前关闭它,则不会通过它接收任何数据!
When you close the serial port, how do you expect it to get any data? Close it when you are finished, or at the end of your program. If you close it before that, you will not receive any data through it!
更多推荐
读取rfid读取器的数据时不会触发数据接收事件
发布评论