回 帖 发 新 帖 刷新版面

主题:请问各位串口控件问题

请问各位:
   用MSComm接收二进制数,要实现收到一个字节处理一次(OnComm),然后显示在 textBox2.Text上,假定发送方
一秒发送一个字节,请问OnComm事件代码应该怎么写?   在此先谢谢各位了!!
  切等!!!

回复列表 (共3个回复)

沙发


我不知道你在哪块遇到问题。
如果你在串口接收事件处理程序中使用窗体控件是要出问题的。
解决办法:
        private void Form1_Load(object sender, EventArgs e)
        {
            CheckForIllegalCrossThreadCalls = false;
        }

板凳

我主要是OnComm事件中要怎么编程不懂
我的代码以下:  帮我看看为什么不行

private void axMSComm1_OnComm(object sender, System.EventArgs e)
        {
            axMSComm1.InputLen=1;
            if(axMSComm1.CommEvent==2)
            {
                byte[] byteArray=new byte[10];
                byteArray=(byte[])axMSComm1.Input;
                textBox2.Text=byteArray[0].ToString();
            }
        }

3 楼

byte[] byteArray=new byte[10];
此行是多余的
textBox2.Text=byteArray[0].ToString();
textBox2.Text中只能显示出对象类型
应该textBox2.Text = BitConverter.ToString(byteArray,0);
或者

textBox2.Text = System.Text.Encordin.Default.GetString(byteArray);
或者
string s = "";
foreach(byte b in byteArray)
{
  s += b.ToString("X2");
}
textBox2.Text = s;

我来回复

您尚未登录,请登录后再回复。点此登录或注册