From 0336357cf8d72c0c17c6fed3d5233f1e352e32ae Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期三, 16 二月 2022 19:57:40 +0800
Subject: [PATCH] 修改485控制BUG

---
 源码/核心板/Src/application/modbus.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/modbus.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/modbus.c"
index 0fd9167..a2a5067 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/modbus.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/modbus.c"
@@ -26,7 +26,7 @@
 void Modbus_RegMap(void)
 {
 	u16 i;
-	RS485_Addr=g_com_map[DEV_ID];
+	RS485_Addr=((g_com_map[DEV_ID]&0xff)>>4)*10+g_com_map[DEV_ID]&0xf;
 	for(i=0;i<MODBUS_SIZE;i++)
 	{
 		Modbus_HoldReg[i]=i;
@@ -513,7 +513,7 @@
                 RS485_TX_BUFF[2]=RegNum*2;
                 for(i=0;i<RegNum;i++)
                 {
-									if(i<100)
+									if(startRegAddr<100)
 									{
                         RS485_TX_BUFF[3+i*2]=(Modbus_HoldReg[startRegAddr+i]>>8)&0xFF;//           /////////先发送高字节--在发送低字节
                         RS485_TX_BUFF[4+i*2]=(Modbus_HoldReg[startRegAddr+i])&0xFF; //
@@ -545,7 +545,7 @@
 	{
 		if(startRegAddr<600)
 		{
-			memcpy(&g_com_map[startRegAddr-100],&RS485_RX_BUFF[4],2);
+			g_com_map[startRegAddr-100]=RS485_RX_BUFF[4]<<8|RS485_RX_BUFF[5];
 		}
 	}else{
         Modbus_HoldReg[startRegAddr]=RS485_RX_BUFF[4]<<8;//高字节在前                    ////////修改为高字节在前,低字节在后

--
Gitblit v1.9.3