485总线调试问题总结
不同的芯片可以支持的节点数不同,MAX3085支持256个节点,MAX487支持128个节点。
一、项目内容
十通道MCU的工装利用UM3085E(英联)芯片,通过485总线与PC进行通信。设计两种通信方案:1、一主多从,PC作为主机,十个MCU设备作为从机;主机通过“设备ID+指令”与十个MCU进行通信;2、十个MCU作为主机,直接将所测的结果上传给主机,但是注意每台设备上传数据之间要有足够的时间间隔,否则会造成总线冲突。
调试过程中遇到的问题:
1、串口输出乱码;
解决方法:出现乱码用的是正点原子的串口调试助手,后来换了友善的串口调试助手后,乱码的问题没有出现。
2、串口输出会在固定的位置多一个字符b;
void strip_in_check(void)
{uint32_t i;uint8_t vpb2; vpb2 = GPIO_devRead(gpiob,2); //UM3085_EN;加的;导致程序跑死了-20200310//打开UM3085E的发送使能脚,将插卡测试的信息发送给上位机进行显示UM3085_ENdelay_ms(1000);switch (vpb2){case 0: printf("device_ID:%d\r\n",device_ID); break;case 1:break;default:break; }UM3085_DIS
}
将UM3085_EN位置放在 ==vpb2 = GPIO_devRead(gpiob,2); ==语句前面,发现b变成了:,于是怀疑是UM3085_EN时序的问题导致串口输出多了字符。
解决办法:1、只使能UM3085_EN,不关闭UM3085的使能脚;
2、在主循环中加延时;
总结:遇到问题多思考,不要着急,记住着急也没用,事情还是要你一点点解决。
20200320:
接上面文章内容,上面的成功只是单方面验证了发送的功能;后面几天在调试接收功能上面又遇到了问题,最后发现是因为电路设计的时候把RE(接收使能脚)拉低导致的问题。
接收功能调试中遇到的问题:
1、程序不能连续的进行工作;
原因是UM3085_DIS使用前没有合适的延时时间;
2、发送和接收会有冲突;
出现这个问题就是因为RE使能脚一直处于有效,会一直占用485总线;导致发送的时候,总线上也会有接收到的数据。
原理图更改为:
更改后,程序能循环发送接收,功能正常。
485总线调试问题总结相关推荐
- “基于485总线的评分系统”
"基于485总线的评分系统"说明 (一)设计思路和方法 RS485为半双工通信.只有通信双方一方处于发送,一方处于接收时,通信才能正常进行.本程序模拟modebus协议,采用主.从 ...
- CAN总线和485总线的区别
1. RS485标准只规定了物理层而没有规定链路层,CAN是规定了物理层和链路层,换句话说,CAN用硬件实现了硬件标准化和协议标准化,当然485也有自己的通用协议MODBUS. 2. CAN硬件支持总 ...
- 基于485总线的评分系统
基于485总线的评分系统 程序设计目标: 通过本案例加深理解RS485通信方式,实现上位机的主控制器与所有的下位机进行通信. 程序运行效果说明: 通过RS232/RS485转换器将多个带有485模块的 ...
- STM32+收发器实现CAN和485总线
RS485总线是一种常见的(Recommended Standard)串行总线标准(485是它的标识号),采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力.CAN是控制器局域网络(Contro ...
- 基于485总线的评分系统双机实验报告
本来还想着做多机的,但老师已经打分了就算了.为了压缩到6页删减了很多内容,将就看吧 基于485总线的评分系统实验报告 实验目标: 通过本案例加深理解RS485通信方式,实现上位机的主控制器与所有的下位 ...
- CAN总线对比485总线
CAN总线和RS485总线的定义 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标 ...
- MFC 485总线通信总结1
最近有一个项目,需要读取9个表测量值,每个表都支持485通信,而一般PC并没有这么多串口,所以采用485总线形式,一主多从,读取各个表测量值. 我是一个初学者,在这里总结记录一下,若有不足之处,请大家 ...
- STM32的CAN总线调试经验分享
相关文章 CAN总线简易入门教程 CAN总线显性电平和隐性电平详解 STM32的CAN总线调试经验分享 文章目录 相关文章 背景 CAN总线 CAN控制器 CAN收发器 调试过程 硬件排查 CAN分析 ...
- RS485总线调试记录
1.现象 PLC与通信模块(简称CB)通过485通信(9600,1bit停止,无校验),PLC发送查询报文,CB应答.在调试过程中发现CB无应答,再加入一台PC设备监视总线报文.总线上共3台设备,无终 ...
最新文章
- 某快手程序员爆料:给小厂随便投投简历,面试表现很差也能过,大厂背书确实有用!...
- Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库
- UVa 412 - Pi
- Oracle数据库的性能调整
- RelationTrack解读
- C语言试题三十五之找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
- python rsa加密之后byte类型存储到数据库中_python3 rsa加密
- MySQL根据员工姓名所在部门_用一条SQL语句显示所有人员的姓名及所在部门
- 18.linux日志收集数据到hdfs上面
- 广州软件性能测试培训,Loadrunner企业级性能测试课程 广州八神软件性能测试实战教程 炼数性能测试视频...
- Xenapp之web界面中文化及发布应用
- JVM 调优一个月,性能提升了 400 倍!
- 单系统 台电x80pro_台电x80 pro (ID:E3E6)安装remix OS系统教程整理
- tkmybatis 子查询_最全的真假童子命查询方法!不想被忽悠就看看
- 运维审计系统:堡垒机
- hexo文章中插入图片
- the old reader使用分享
- 那个卖了房子去大理的姑娘,4个月后又回来了
- eachart加单位
- java.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection, messa
热门文章
- nuttx app添加自己的小应用程序
- 如何在WhatsApp中添加联系人
- FreeBSD安装图解
- 简单的金额小写转成读出来的大写
- JAVA版都市沥青GT,育碧著名赛车游戏《都市沥青路GT》随 NDS 首发
- C++入门教程:大白话讲解,新手基础篇(附源码及详解、视频课程资料推荐)
- 如何用Qt实现Office界面样式--QtitanRibbon
- 想在命令行下高效管理百度网盘吗?或许你应该用下这款神器!
- GBase 8c V3.0.0数据类型——HLL函数和操作符(功能函数)
- linux如何删除硬链接,linux下创建和删除软、硬链接