Selaa lähdekoodia

增加了触摸屏上主站的代码

deepseek
ywh 1 kuukausi sitten
vanhempi
commit
a338c8cfa3
3 muutettua tiedostoa jossa 28 lisäystä ja 4 poistoa
  1. +24
    -3
      Core/Src/main.c
  2. +2
    -0
      Modbus/Inc/modbus_rtu_slave.h
  3. +2
    -1
      Modbus/Src/modbus_rtu_slave.c

+ 24
- 3
Core/Src/main.c Näytä tiedosto

@@ -88,13 +88,34 @@ static void AppTaskStart(void *p_arg)
* 4x地址2:收到的有效Modbus帧数; * 4x地址2:收到的有效Modbus帧数;
* 4x地址10:触摸屏读写测试值,由协议层保存。 * 4x地址10:触摸屏读写测试值,由协议层保存。
*/ */
(void)ModbusSlaveSetHoldingRegister(
(void)ModbusSlaveSetHoldingRegister(//OS时钟
HMI_REG_UPTIME_SECONDS, HMI_REG_UPTIME_SECONDS,
(uint16_t)(OSTimeGet() / OS_TICKS_PER_SEC)); (uint16_t)(OSTimeGet() / OS_TICKS_PER_SEC));
(void)ModbusSlaveSetHoldingRegister(
(void)ModbusSlaveSetHoldingRegister(//有效帧计数
HMI_REG_RX_FRAME_COUNT, HMI_REG_RX_FRAME_COUNT,
(uint16_t)ModbusSlaveStatistics.validFrameCount); (uint16_t)ModbusSlaveStatistics.validFrameCount);


(void)ModbusSlaveSetHoldingRegister(//从站地址不匹配计数
3,
(uint16_t)ModbusSlaveStatistics.ignoredAddressCount);
(void)ModbusSlaveSetHoldingRegister(//非法功能码计数
4,
(uint16_t)ModbusSlaveStatistics.illegalFunctionCount);

(void)ModbusSlaveSetHoldingRegister(//非法地址计数
5,
(uint16_t)ModbusSlaveStatistics.illegalAddressCount);

(void)ModbusSlaveSetHoldingRegister(//非法数据值计数
6,
(uint16_t)ModbusSlaveStatistics.illegalValueCount);







/* /*
* 协议解析和应答在任务上下文完成,中断只接收一帧并设置标志。 * 协议解析和应答在任务上下文完成,中断只接收一帧并设置标志。
* 每1ms轮询一次,不在串口中断中执行耗时的CRC和寄存器操作。 * 每1ms轮询一次,不在串口中断中执行耗时的CRC和寄存器操作。
@@ -273,7 +294,7 @@ static void MX_USART1_UART_Init(void)


/* USER CODE END USART1_Init 1 */ /* USER CODE END USART1_Init 1 */
huart1.Instance = USART1; huart1.Instance = USART1;
huart1.Init.BaudRate = 19200;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_9B; huart1.Init.WordLength = UART_WORDLENGTH_9B;
huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_EVEN; huart1.Init.Parity = UART_PARITY_EVEN;


+ 2
- 0
Modbus/Inc/modbus_rtu_slave.h Näytä tiedosto

@@ -31,6 +31,8 @@ extern "C"
#define HMI_REG_DEVICE_ID (0U) #define HMI_REG_DEVICE_ID (0U)
#define HMI_REG_UPTIME_SECONDS (1U) #define HMI_REG_UPTIME_SECONDS (1U)
#define HMI_REG_RX_FRAME_COUNT (2U) #define HMI_REG_RX_FRAME_COUNT (2U)


#define HMI_REG_WRITE_TEST (10U) #define HMI_REG_WRITE_TEST (10U)
#define HMI_COIL_WRITE_TEST (0U) #define HMI_COIL_WRITE_TEST (0U)




+ 2
- 1
Modbus/Src/modbus_rtu_slave.c Näytä tiedosto

@@ -812,9 +812,10 @@ void ModbusRetainedRegistersLoad(void)
backupData->magic = MODBUS_BACKUP_MAGIC; backupData->magic = MODBUS_BACKUP_MAGIC;
} }
} }
void ModbusRetainedRegistersPoll()
void ModbusRetainedRegistersPoll(void)
{ {
uint16_t index; uint16_t index;
// uint16_t address;
uint16_t value; uint16_t value;


for(index=0;index<MODBUS_RETAINED_D_COUNT;index++) for(index=0;index<MODBUS_RETAINED_D_COUNT;index++)


Ladataan…
Peruuta
Tallenna