请问我用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我单片机里面也是这样的
顺便把我的程序贴出来
展开
 我来答
匿名用户
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# 里要另起 线程处理吧
追问
能在讲具体点吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2015-04-24 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3466万
展开全部
你好!
你可以单步执行,看看是出在那一句上
追问
请问怎么单步执行程序?能具体说一下吗?谢谢啦!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查晓筠0i5
2015-04-24 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4964万
展开全部
关注这个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式