jim166783 发表于 2008-8-26 15:54:24

晒个用C#做的串口收发的小工具

晒个用C#做的串口收发的小工具,还是有些小bug,请多多指教,个人感觉C#比VC++好上手

用的版本是Microsoft Visual C# 2008 Express Edition

点击此处下载 ourdev_390773.rar(文件大小:52K) (原文件名:ComTool.rar)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_390774.JPG
(原文件名:{82BD7EA3-918C-4BEE-8E07-62B44C759947}.JPG)

miraclelife 发表于 2008-8-26 16:12:36

多谢楼主共享,这段时间正好要研究一下。net的串口通信

eeyrw 发表于 2008-8-26 16:29:57

C#的,不错,看看。

armok 发表于 2008-8-26 16:31:07

jim166783 发表于 2008-8-26 16:38:00

哈哈 很崇拜阿莫 谢谢鼓励

eeyrw 发表于 2008-8-26 16:38:05

指出一下楼主程序的问题:
1、
整个程序没有异常处理,当出现异常时,立即奔溃。
2、
      private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
      {
            string read = serialPort.ReadExisting();
            textBoxRec.Text += read;
      }
这段代码中的textBoxRec.Text += read;这种做法是不安全的,应为他们俩不是一个线程的上的,调试的时候会抛出异样D,一试便知。正确的做法因该是使用委托事件。

解决方案:
      public delegate void myDelegate();
      public void refe()
      {
         
            string read = serialPort.ReadExisting();
            textBoxRec.Text += read;

      }

      private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
      {
            BeginInvoke(new myDelegate(refe));

      }

jim166783 发表于 2008-8-26 16:42:59

感谢 【5楼】 eeyrw

1、确实没有做异常处理,因为只花了一天的时候写,想尽快的体验C#,所以.....,会完善的^_^

2、textBoxRec.Text += read;这样只是能显示出字符,没有做显示16进制数

eeyrw看得很认真,学习。。。。

eeyrw 发表于 2008-8-26 16:45:29

2、textBoxRec.Text += read;这样只是能显示出字符,没有做显示16进制数

我说得并不是这个问题,而是这样做是不安全的,在调试的时候会抛出异样的。不相信可以试一下。

jim166783 发表于 2008-8-26 16:50:15

可以显示在“接收区”啊
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_390854.jpg
(原文件名:{F86651B7-524F-4E0A-96C1-362CB0AF59C5}.jpg)

eeyrw 发表于 2008-8-26 16:52:47

对D,但是在调试的时候就不一样了~

jim166783 发表于 2008-8-26 17:38:31


刚在调试的过程中明白你的意思了

dachun 发表于 2008-11-8 15:29:05

mark

hl1200aa 发表于 2008-12-21 17:02:18

C#的托管很麻烦!

lianxiwang2008 发表于 2010-4-27 09:05:57

dddddddddddddddddddddd,正在学习,谢谢

lou0908 发表于 2010-8-9 12:10:29

bj

skyxjh 发表于 2013-8-27 22:58:18

最近也在学习C#做上位机,学习了。
页: [1]
查看完整版本: 晒个用C#做的串口收发的小工具