请问我用C#编的串口程序为什么调不通

2019-03-24 18:01发布

其实很简单,就是初始化之后,向单片机发送字符串,然后我在单片机有个这样的程序
  1. void transmit(unsigned char *dat)
  2. {
  3.         unsigned int i;
  4.         for(i=0;i<5;i++)
  5.         {               
  6.                 SBUF0 = dat[i];
  7.                 while(!TI0);
  8.                 TI0 = 0;       
  9.         }
  10. }
复制代码可以直接发送到SBUF里,当然,串口接收单片机里也写好了,而且已经通过串口助手检测无误了(串口助手里发送什么就能收到什么)
现在的目的是想在C#的环境里像单片机发送字符串,然后通过串口助手检测单片机是否能收到,但现在的问题是,每回发送都显示错误,C#串口部分的代码真的很简单,如下所示:

  1.     private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             try
  4.             {
  5.                 label2.Text = "ff"+label3.Text + label1.Text;
  6.                 serialPort1.PortName = "COM4";
  7.                 serialPort1.BaudRate = 9600;
  8.                 serialPort1.DataBits = 8;
  9.                 serialPort1.Parity =System.IO.Ports.Parity.None  ;
  10.                 serialPort1.StopBits = System.IO.Ports.StopBits.One;

  11.                 serialPort1.Open();
  12.                 byte[] data = Encoding.ASCII .GetBytes(label2.Text);
  13.                 string str=Convert .ToBase64String (data);
  14.                 serialPort1.Write (str);

  15.                 MessageBox.Show("success!", "congadualation");
  16.             }
  17.             catch (Exception ex)
  18.             {
  19.                 MessageBox.Show("error", "waring");
  20.             }
  21.         }
复制代码不知道哪里错了,另外当我插上串口线之后电脑显示的的是COM4,我觉得这应该没问题吧,波特率9600我单片机里面也是这样的
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ZNF
1楼-- · 2019-03-24 20:39
顺便把我的程序贴出来
1.PNG
hainandgm
2楼-- · 2019-03-25 01:54
在button1_Click里面设一个中断,然后单步调试,可以找到问题所在的行,就可以解决问题了
freebsder
3楼-- · 2019-03-25 03:46
 精彩回答 2  元偷偷看……

一周热门 更多>