请问我用C#编的串口程序为什么调不通
其实很简单,就是初始化之后,向单片机发送字符串,然后我在单片机有个这样的程序voidtransmit(unsignedchar*dat){unsignedinti;for...
其实很简单,就是初始化之后,向单片机发送字符串,然后我在单片机有个这样的程序
void transmit(unsigned char *dat)
{
unsigned int i;
for(i=0;i<5;i++)
{
SBUF0 = dat[i];
while(!TI0);
TI0 = 0;
}
}
可以直接发送到SBUF里,当然,串口接收单片机里也写好了,而且已经通过串口助手检测无误了(串口助手里发送什么就能收到什么)现在的目的是想在C#的环境里像单片机发送字符串,然后通过串口助手检测单片机是否能收到,但现在的问题是,每回发送都显示错误,C#串口部分的代码真的很简单,如下所示:
private void button1_Click(object sender, EventArgs e)
{
try
{
label2.Text = "ff"+label3.Text + label1.Text;
serialPort1.PortName = "COM4";
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.Parity =System.IO.Ports.Parity.None ;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.Open();
byte[] data = Encoding.ASCII .GetBytes(label2.Text);
string str=Convert .ToBase64String (data);
serialPort1.Write (str);
MessageBox.Show("success!", "congadualation");
}
catch (Exception ex)
{
MessageBox.Show("error", "waring");
}
}
不知道哪里错了,另外当我插上串口线之后电脑显示的的是COM4,我觉得这应该没问题吧,波特率9600我单片机里面也是这样的
顺便把我的程序贴出来 展开
void transmit(unsigned char *dat)
{
unsigned int i;
for(i=0;i<5;i++)
{
SBUF0 = dat[i];
while(!TI0);
TI0 = 0;
}
}
可以直接发送到SBUF里,当然,串口接收单片机里也写好了,而且已经通过串口助手检测无误了(串口助手里发送什么就能收到什么)现在的目的是想在C#的环境里像单片机发送字符串,然后通过串口助手检测单片机是否能收到,但现在的问题是,每回发送都显示错误,C#串口部分的代码真的很简单,如下所示:
private void button1_Click(object sender, EventArgs e)
{
try
{
label2.Text = "ff"+label3.Text + label1.Text;
serialPort1.PortName = "COM4";
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.Parity =System.IO.Ports.Parity.None ;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.Open();
byte[] data = Encoding.ASCII .GetBytes(label2.Text);
string str=Convert .ToBase64String (data);
serialPort1.Write (str);
MessageBox.Show("success!", "congadualation");
}
catch (Exception ex)
{
MessageBox.Show("error", "waring");
}
}
不知道哪里错了,另外当我插上串口线之后电脑显示的的是COM4,我觉得这应该没问题吧,波特率9600我单片机里面也是这样的
顺便把我的程序贴出来 展开
2015-04-25
展开全部
........
//定义
private System.IO.Ports.SerialPort serialPort1;
//new
serialPort1= new System.IO.Ports.SerialPort( "COM4");
//打开串口
serialPort1.Open();
.......
追问
请问这个是在哪里定义的?
追答
private System.IO.Ports.SerialPort serialPort1 这个吗?
你之前定义在哪就定义在哪 , 类成员里面
2015-04-24
展开全部
C# 里要另起 线程处理吧
追问
能在讲具体点吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!
你可以单步执行,看看是出在那一句上
你可以单步执行,看看是出在那一句上
追问
请问怎么单步执行程序?能具体说一下吗?谢谢啦!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注这个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询