From 0fab14bd3b70cdb16f134eaeeaac7d0947f2078f Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期三, 25 十一月 2020 19:36:16 +0800
Subject: [PATCH] 增加速度滤波阈值

---
 源码/核心板/Src/application/modbus.c |   63 +++++++++++++++++--------------
 1 files changed, 34 insertions(+), 29 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 a0ed72f..715d445 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"
@@ -1,5 +1,6 @@
 #include "modbus.h"
 #include "Rcc_Nvic_Systick.h"
+#include "global_param.h"
 ///////////////////////////////////////////////////////////
 //u32 RS485_Baudrate=9600;//通讯波特率
 //u8 RS485_Parity=0;//0无校验;1奇校验;2偶校验
@@ -24,6 +25,7 @@
 void Modbus_RegMap(void)
 {
 	u16 i;
+	RS485_Addr=g_com_map[DEV_ID];
 	for(i=0;i<MODBUS_SIZE;i++)
 	{
 		Modbus_HoldReg[i]=i;
@@ -184,19 +186,22 @@
 //发送n个字节数据
 //buff:发送区首地址
 //len:发送的字节数
-void RS485_SendData(u8 *buff,u8 len)
-{ 
-        RS485_TX_ON;//切换为发送模式
-				delay_us(100);
-        while(len--)
-        {
-                while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//等待发送区为空
-                USART_SendData(USART1,*(buff++));
-        }
-        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//等待发送完成
-				RS485_TX_OFF;//开启接收模式
-				delay_us(100);
-}
+//void RS485_SendData(u8 *buff,u8 len)
+//{ 
+//        RS485_TX_ON;//切换为发送模式
+//	#ifdef BAUDRATE_19200
+//				delay_ms(5);
+//	#else
+//				delay_ms(1);
+//	#endif
+//        while(len--)
+//        {
+//                while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//等待发送区为空
+//                USART_SendData(USART1,*(buff++));
+//        }
+//        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//等待发送完成
+//				RS485_TX_OFF;//开启接收模式
+//}
 
 
 /////////////////////////////////////////////////////////////////////////////////////
@@ -324,7 +329,7 @@
                                                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                                                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                                                 RS485_TX_BUFF[2]=0x04; //异常码
-                                                RS485_SendData(RS485_TX_BUFF,3);
+                                                UART_PushFrame(RS485_TX_BUFF,3);
 																								cmd_mode = 0;//协议处理完成
                                         }        
                                 }
@@ -333,7 +338,7 @@
                                         RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                                         RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                                         RS485_TX_BUFF[2]=0x02; //异常码
-                                        RS485_SendData(RS485_TX_BUFF,3);
+                                        UART_PushFrame(RS485_TX_BUFF,3);
 																				cmd_mode = 0;//协议处理完成
                                 }                                                
                         }
@@ -342,7 +347,7 @@
                                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                                 RS485_TX_BUFF[2]=0x01; //异常码
-                                RS485_SendData(RS485_TX_BUFF,3);
+                                UART_PushFrame(RS485_TX_BUFF,3);
 																cmd_mode = 0;//协议处理完成
                         }
           }
@@ -380,14 +385,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,ByteNum+3);
                 RS485_TX_BUFF[ByteNum+3]=(calCRC>>8)&0xFF;
                 RS485_TX_BUFF[ByteNum+4]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,ByteNum+5);
+                UART_PushFrame(RS485_TX_BUFF,ByteNum+5);
         }
         else//寄存器地址+数量超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 
@@ -418,14 +423,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,ByteNum+3);
                 RS485_TX_BUFF[ByteNum+3]=(calCRC>>8)&0xFF;
                 RS485_TX_BUFF[ByteNum+4]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,ByteNum+5);
+                UART_PushFrame(RS485_TX_BUFF,ByteNum+5);
         }
         else//寄存器地址+数量超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 
@@ -448,14 +453,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,6);
                 RS485_TX_BUFF[6]=(calCRC>>8)&0xFF;
                 RS485_TX_BUFF[7]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,8);
+                UART_PushFrame(RS485_TX_BUFF,8);
         }
         else//寄存器地址超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 
@@ -483,14 +488,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,6);
                 RS485_TX_BUFF[6]=(calCRC>>8)&0xFF;
                 RS485_TX_BUFF[7]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,8);
+                UART_PushFrame(RS485_TX_BUFF,8);
         }
         else//寄存器地址+数量超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 
@@ -513,14 +518,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,RegNum*2+3);
                 RS485_TX_BUFF[RegNum*2+3]=(calCRC>>8)&0xFF;         //CRC高地位不对吗?  // 先高后低
                 RS485_TX_BUFF[RegNum*2+4]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,RegNum*2+5);
+                UART_PushFrame(RS485_TX_BUFF,RegNum*2+5);
         }
         else//寄存器地址+数量超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 
@@ -542,7 +547,7 @@
         calCRC=CRC_Compute(RS485_TX_BUFF,6);
         RS485_TX_BUFF[6]=(calCRC>>8)&0xFF;
         RS485_TX_BUFF[7]=(calCRC)&0xFF;
-        RS485_SendData(RS485_TX_BUFF,8);
+        UART_PushFrame(RS485_TX_BUFF,8);
 }
 
 //Modbus功能码16处理程序 /////////////////////////////////////////////////////////////////////////////////////////////////已验证程序OK
@@ -569,14 +574,14 @@
                 calCRC=CRC_Compute(RS485_TX_BUFF,6);
                 RS485_TX_BUFF[6]=(calCRC>>8)&0xFF;
                 RS485_TX_BUFF[7]=(calCRC)&0xFF;
-                RS485_SendData(RS485_TX_BUFF,8);
+                UART_PushFrame(RS485_TX_BUFF,8);
         }
         else//寄存器地址+数量超出范围
         {
                 RS485_TX_BUFF[0]=RS485_RX_BUFF[0];
                 RS485_TX_BUFF[1]=RS485_RX_BUFF[1]|0x80;
                 RS485_TX_BUFF[2]=0x02; //异常码
-                RS485_SendData(RS485_TX_BUFF,3);
+                UART_PushFrame(RS485_TX_BUFF,3);
         }
 }
 

--
Gitblit v1.9.3