OpenEdv-开源电子网

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

485通讯(战舰STM32开发板通过485转网线的连接到电脑主机)

[复制链接]

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-8 16:58:08 | 显示全部楼层 |阅读模式
5金钱
实验环境:战舰STM32开发板通过NP801D(485转网线)的连接到电脑主机
    在电脑上通过网络调试助手,发字码到战舰STM32开发板,开发板能够收到字码,但按下key0键开发板屏幕显示senddata数据:但电脑上网络调试助手收不到数据。

改动程序能够实现:按下key0键,开发板屏幕显示senddata数据,电脑上网络调试助手收到数据,但 在电脑上通过网络调试助手,发字码到战舰STM32开发板,开发板够收不到到字码。
                             

求大神指点
                          

最佳答案

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

好了,就是R45的问题,感谢原子,感谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
 楼主| 发表于 2015-3-8 16:58:09 | 显示全部楼层
好了,就是R45的问题,感谢原子,感谢
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
 楼主| 发表于 2015-3-8 18:27:15 | 显示全部楼层
刚才是GND没接,现在电脑能收到STM32发的数据,STM32收不到电脑网络调试助手发的数据;直接连接到232端口上正常

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-8 22:47:48 | 显示全部楼层
仿真下,看看进入了串口接收中断没有?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
 楼主| 发表于 2015-3-9 20:39:56 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
连接485模块,仿真能进去,发送和接受子程序都可以进去;应该不是软件程序的问题(同样的程序串口转232就可以),怀疑是串口转485模块的问题,R45可以自己断开吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-9 22:11:27 | 显示全部楼层
回复【4楼】guanjunyang:
---------------------------------
可以自己断开
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
 楼主| 发表于 2015-3-9 22:45:08 | 显示全部楼层
RS485_TX_EN=0; //设置为接收模式
}

//RS485发送len个字节.
//buf:发送区首地址
//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)
void RS485_Send_Data(u8 *buf,u8 len)
{
u8 t;
//RS485_TX_EN=1; //设置为发送模式
  for(t=0;t<len;t++) //循环发送数据
{
while((USART2->SR&0X40)==0);//等待发送结束  
USART2->DR=buf[t];
}  
while((USART2->SR&0X40)==0);//等待发送结束
RS485_RX_CNT=0;  
//RS485_TX_EN=0; //设置为接收模式
}

1.通过软件将RS485_TX_EN一直设置为0(//设置为接收模式) ,STM32接收显示000如上次发的图所示,同时STM32能够发送数据到电脑;
2..通过软件将RS485_TX_EN一直设置为1(//设置为发送模式) STM32接收不到数据,同时STM32能够发送数据到电脑;
怀疑是不是PG9使能没起作用,我再查查,谢谢,非常感谢原子大神!!!!
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
 楼主| 发表于 2015-3-9 22:45:24 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
谢谢,非常感谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 08:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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