找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1568|回复: 9
收起左侧

单片机RS485通信程序如何编写?

[复制链接]
ID:887685 发表于 2022-4-2 09:30 | 显示全部楼层 |阅读模式
最近用PIC单片机和电机驱动用RS485通信控制,请大佬告诉RS485通信程序怎么写啊,一头雾水。望大神指导,谢谢。
回复

使用道具 举报

ID:161164 发表于 2022-4-2 15:26 来自手机 | 显示全部楼层
RS485是硬件传输制式,不用写程序的,可用串口協议来通讯
回复

使用道具 举报

ID:887685 发表于 2022-4-2 15:51 | 显示全部楼层
lkc8210 发表于 2022-4-2 15:26
RS485是硬件传输制式,不用写程序的,可用串口協议来通讯

感谢回复。恩,MODBUS—RTU协议,我就写好了串口初始化,下面就卡住了。下面应该怎么写啊
回复

使用道具 举报

ID:887685 发表于 2022-4-2 15:53 | 显示全部楼层
  1. void Usart485_Init (void)
  2. {
  3.         RC2STA = 0x90;
  4.         TX2STAbits.TX9 = 0;
  5.         TX2STAbits.TXEN = 1;
  6.         TX2STAbits.SYNC = 0;
  7.         TX2STAbits.BRGH = 1;

  8.         BAUD2CONbits.BRG16 = 0;
  9.         SP2BRGH = 0;
  10.         SP2BRGL = 0x19;                        //25,波特率9600
  11.         RC2IE = 1;
  12.         DE = 0;
  13. }

  14. void Usart485_send (uint16 data)
  15. {
  16.         DE = 1;
  17.         TX2REG = data;
  18.         while(TX2STAbits.TRMT);
  19.         delayus(50);
  20.         DE = 0;
  21. }
复制代码
回复

使用道具 举报

ID:123289 发表于 2022-4-2 17:33 | 显示全部楼层
先读通RS485通信协议
回复

使用道具 举报

ID:1015276 发表于 2022-4-2 20:36 | 显示全部楼层
rs485是半双工,空闲处于接收状态,一般采样应答模式。
回复

使用道具 举报

ID:883242 发表于 2022-4-2 21:14 | 显示全部楼层
modbus/rtu从机还是有一定难度的,楼主可以使用freemodbus来移植。
回复

使用道具 举报

ID:887685 发表于 2022-4-9 14:48 | 显示全部楼层
Hephaestus 发表于 2022-4-2 21:14
modbus/rtu从机还是有一定难度的,楼主可以使用freemodbus来移植。

感谢回复,现在想请教个问题啊。485通信是主机发了信息后,从机收完一帧后立即应答,还是执行完命令后再回复一帧信息。如果执行完命令后再回复,那期间主机还在一直发,刚好从机又解析后回了一帧,那总线是不是就死了。
回复

使用道具 举报

ID:883242 发表于 2022-4-9 15:47 | 显示全部楼层
fengxiaoliang 发表于 2022-4-9 14:48
感谢回复,现在想请教个问题啊。485通信是主机发了信息后,从机收完一帧后立即应答,还是执行完命令后再 ...

一主多从系统当然是主机查询,从机发现是让自己说法赶紧回答。要是从机可以随便什么时候都能回复,那总线不就全乱套了吗?
回复

使用道具 举报

ID:887371 发表于 2022-4-9 16:25 | 显示全部楼层
先把协议搞明白再说

Modbus协议中文版【完整版】.pdf

1.08 MB, 下载次数: 56

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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