OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3128|回复: 10

通信 接受不到

[复制链接]

18

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-8
在线时间
10 小时
发表于 2015-7-30 11:38:08 | 显示全部楼层 |阅读模式
5金钱

用c#做了个小程序,点击按钮发送数据到单片机,但是下位机一直接受不到数据是怎么回事,用串口助手检测了下位机没有问题

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                serialPort1.PortName = "COM1";
                serialPort1.Open();
               // byte[] data = Encoding.Unicode.GetBytes(sendbox.Text);
               // string str = Convert.ToBase64String(data);
                serialPort1.Write(sendbox.Text);
                serialPort1.Close();
                MessageBox.Show("数据发送成功!", "系统提示");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), "提示信息");
            }

        }

最佳答案

查看完整内容[请看2#楼]

回复【5楼】ziyizfm: --------------------------------- 或者你上位机 自己写一个 checkbox  勾选选择要不要发送新行
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 11:38:09 | 显示全部楼层
回复【5楼】ziyizfm:
---------------------------------
或者你上位机 自己写一个 checkbox  勾选选择要不要发送新行
学无止境
回复

使用道具 举报

18

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-8
在线时间
10 小时
 楼主| 发表于 2015-7-30 12:23:41 | 显示全部楼层
用串口助手已经搞定了   但是用这段程序发送就不行,我刚用了串口助手中的hex发送也是没反应,是怎么回事?下位机代码如下:
while(1)
{
if(USART_RX_STA&0x80)
{
      LCD_Clear(WHITE);
len=USART_RX_STA&0x3f;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n");
    for(t=0;t<len;t++)
    {
     res[t]=USART_RX_BUF[t];
USART1->DR=res[t];
         while((USART1->SR&0X40)==0);//等待发送结束
}
USART_RX_STA=0; 
if(res[0]==0x31)
{
      //Show_Str(60,110,"数据正确",16,0);
Show_Str(60,150,"数据正确",16,0);
Show_Str(60,50+20,&res[0],16,0);
     }
 else
{
   // Show_Str(60,150,"数据错误",16,0);
Show_Str(60,110,"数据错误",16,0);
    Show_Str(60,50+20,&res[0],16,0);  
}
}
else
{aaaa
times++;
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10);   
}
}
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 12:51:25 | 显示全部楼层
楼主先找两个USB转232的   自己在电脑上测试   看你的上位机到底发东西出来没
学无止境
回复

使用道具 举报

18

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-8
在线时间
10 小时
 楼主| 发表于 2015-7-30 16:49:09 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
我在用串口助手调试的时候必须要点击发送新行才能接收到数据,不点击也接收不到看了这篇文章才知道,
正点原子的例程要判断回车换行(0X0D,0X0A)作为输入的结束,所以必须在最后,发送回车换行.那在上位机软件上手动发送0x0d和0x0a不行啊,要怎样才能达到发送新行的目的?
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 17:29:50 | 显示全部楼层
回复【5楼】ziyizfm:
---------------------------------
声明一个list也好   数组也好 ,把 sendbox.Text 后面加上 \r\n 再serialPort1.Write(sendbox.Text);
学无止境
回复

使用道具 举报

18

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-8
在线时间
10 小时
 楼主| 发表于 2015-7-30 19:24:24 | 显示全部楼层
回复【7楼】jermy_z:
------------------------------
按照你的方法搞定了,太感谢了
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 19:55:22 | 显示全部楼层
回复【8楼】ziyizfm:
---------------------------------
嗯  你还可以调用writeline  这个函数自动加上换行的,你可以试试
学无止境
回复

使用道具 举报

18

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-7-8
在线时间
10 小时
 楼主| 发表于 2015-7-30 20:12:25 | 显示全部楼层
回复【9楼】jermy_z:
---------------------------------
我试过了writeline 不行,也不清楚为什么,只有手动加才能接收到
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 20:16:56 | 显示全部楼层
回复【10楼】ziyizfm:
---------------------------------
好吧  那就手动加吧,给你一份我的串口调试助手代码看看吧,前段时间刚学c#练手用的,注释不太多,自己啃吧,有bug也自己解决吧,当时也是随手写的
学无止境
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-7-30 20:20:59 | 显示全部楼层
回复【10楼】ziyizfm:
---------------------------------
看了下  好像那份代码也没啥东西  哈哈  就不献丑了
学无止境
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 06:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表