|
|
|
@@ -88,13 +88,34 @@ static void AppTaskStart(void *p_arg) |
|
|
|
* 4x地址2:收到的有效Modbus帧数; |
|
|
|
* 4x地址10:触摸屏读写测试值,由协议层保存。 |
|
|
|
*/ |
|
|
|
(void)ModbusSlaveSetHoldingRegister( |
|
|
|
(void)ModbusSlaveSetHoldingRegister(//OS时钟 |
|
|
|
HMI_REG_UPTIME_SECONDS, |
|
|
|
(uint16_t)(OSTimeGet() / OS_TICKS_PER_SEC)); |
|
|
|
(void)ModbusSlaveSetHoldingRegister( |
|
|
|
(void)ModbusSlaveSetHoldingRegister(//有效帧计数 |
|
|
|
HMI_REG_RX_FRAME_COUNT, |
|
|
|
(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和寄存器操作。 |
|
|
|
@@ -273,7 +294,7 @@ static void MX_USART1_UART_Init(void) |
|
|
|
|
|
|
|
/* USER CODE END USART1_Init 1 */ |
|
|
|
huart1.Instance = USART1; |
|
|
|
huart1.Init.BaudRate = 19200; |
|
|
|
huart1.Init.BaudRate = 115200; |
|
|
|
huart1.Init.WordLength = UART_WORDLENGTH_9B; |
|
|
|
huart1.Init.StopBits = UART_STOPBITS_1; |
|
|
|
huart1.Init.Parity = UART_PARITY_EVEN; |
|
|
|
|