2114|3

111

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请问我用C#编的串口程序为什么调不通 [复制链接]

其实很简单,就是初始化之后,向单片机发送字符串,然后我在单片机有个这样的程序
  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我单片机里面也是这样的
此帖出自51单片机论坛

最新回复

不用贴程序了吧,估计没几个人看。 你再先写个serial程序或者直接用调试工具,两个串口对连,其中一个串口模拟你的下位机发数据,先调你的上位机。上位机调了在调下位机。或者反过来先调下位机也许。 两个变量的时候,先固定一个再折腾另一个,不是吗? 另外,调试阶段,把除了要求必须的try catch全部删掉,否则就不要把ex当作摆设。 另外,event响应,打开一次serial,记录handler就好。   详情 回复 发表于 2015-4-24 22:53
点赞 关注
 

回复
举报

111

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
顺便把我的程序贴出来

此帖出自51单片机论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
在button1_Click里面设一个中断,然后单步调试,可以找到问题所在的行,就可以解决问题了
此帖出自51单片机论坛
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 
不用贴程序了吧,估计没几个人看。

你再先写个serial程序或者直接用调试工具,两个串口对连,其中一个串口模拟你的下位机发数据,先调你的上位机。上位机调了在调下位机。或者反过来先调下位机也许。
两个变量的时候,先固定一个再折腾另一个,不是吗?
另外,调试阶段,把除了要求必须的try catch全部删掉,否则就不要把ex当作摆设

另外,event响应,打开一次serial,记录handler就好。











此帖出自51单片机论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表