找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1982|回復(fù): 9
收起左側(cè)

單片機(jī)RS485通信程序如何編寫?

[復(fù)制鏈接]
ID:887685 發(fā)表于 2022-4-2 09:30 | 顯示全部樓層 |閱讀模式
最近用PIC單片機(jī)和電機(jī)驅(qū)動(dòng)用RS485通信控制,請(qǐng)大佬告訴RS485通信程序怎么寫啊,一頭霧水。望大神指導(dǎo),謝謝。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-4-2 15:26 來自手機(jī) | 顯示全部樓層
RS485是硬件傳輸制式,不用寫程序的,可用串口協(xié)議來通訊
回復(fù)

使用道具 舉報(bào)

ID:887685 發(fā)表于 2022-4-2 15:51 | 顯示全部樓層
lkc8210 發(fā)表于 2022-4-2 15:26
RS485是硬件傳輸制式,不用寫程序的,可用串口協(xié)議來通訊

感謝回復(fù)。恩,MODBUS—RTU協(xié)議,我就寫好了串口初始化,下面就卡住了。下面應(yīng)該怎么寫啊
回復(fù)

使用道具 舉報(bào)

ID:887685 發(fā)表于 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. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-4-2 17:33 | 顯示全部樓層
先讀通RS485通信協(xié)議
回復(fù)

使用道具 舉報(bào)

ID:1015276 發(fā)表于 2022-4-2 20:36 | 顯示全部樓層
rs485是半雙工,空閑處于接收狀態(tài),一般采樣應(yīng)答模式。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-4-2 21:14 | 顯示全部樓層
modbus/rtu從機(jī)還是有一定難度的,樓主可以使用freemodbus來移植。
回復(fù)

使用道具 舉報(bào)

ID:887685 發(fā)表于 2022-4-9 14:48 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-4-2 21:14
modbus/rtu從機(jī)還是有一定難度的,樓主可以使用freemodbus來移植。

感謝回復(fù),現(xiàn)在想請(qǐng)教個(gè)問題啊。485通信是主機(jī)發(fā)了信息后,從機(jī)收完一幀后立即應(yīng)答,還是執(zhí)行完命令后再回復(fù)一幀信息。如果執(zhí)行完命令后再回復(fù),那期間主機(jī)還在一直發(fā),剛好從機(jī)又解析后回了一幀,那總線是不是就死了。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-4-9 15:47 | 顯示全部樓層
fengxiaoliang 發(fā)表于 2022-4-9 14:48
感謝回復(fù),現(xiàn)在想請(qǐng)教個(gè)問題啊。485通信是主機(jī)發(fā)了信息后,從機(jī)收完一幀后立即應(yīng)答,還是執(zhí)行完命令后再 ...

一主多從系統(tǒng)當(dāng)然是主機(jī)查詢,從機(jī)發(fā)現(xiàn)是讓自己說法趕緊回答。要是從機(jī)可以隨便什么時(shí)候都能回復(fù),那總線不就全亂套了嗎?
回復(fù)

使用道具 舉報(bào)

ID:887371 發(fā)表于 2022-4-9 16:25 | 顯示全部樓層
先把協(xié)議搞明白再說

Modbus協(xié)議中文版【完整版】.pdf

1.08 MB, 下載次數(shù): 56

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表