Browse Source

添加比例阀控制使能输出

hand_acid_mainboard
zhaohe 11 months ago
parent
commit
b3cae2e494
  1. 28
      modbus/modbus_block_host.cpp
  2. 4
      modbus/modbus_block_host.hpp

28
modbus/modbus_block_host.cpp

@ -14,6 +14,8 @@ void ModbusBlockHost::initialize(UART_HandleTypeDef *huart) {
this->huart = huart;
m_modbus_lock.init();
}
void ModbusBlockHost::enableDump(bool enable) { m_dump = enable; }
void ModbusBlockHost::cleanRxBuff() { //
HAL_StatusTypeDef status;
do {
@ -23,13 +25,13 @@ void ModbusBlockHost::cleanRxBuff() { //
void ModbusBlockHost::uarttx(uint8_t *buff, size_t len) {
ZASSERT(len < sizeof(txbuff));
#if PRV_DEBUG
printf("uart_tx:\n");
for (size_t i = 0; i < len; i++) {
printf("%02x ", buff[i]);
if (m_dump) {
printf("uart_tx:\n");
for (size_t i = 0; i < len; i++) {
printf("%02x ", buff[i]);
}
printf("\n");
}
printf("\n");
#endif
// HAL_UART_Transmit(huart, buff, len, 1000);
HAL_UART_DMAStop(huart);
HAL_StatusTypeDef ret = HAL_UART_Transmit_DMA(huart, buff, len);
@ -54,15 +56,15 @@ bool ModbusBlockHost::uartrx(uint8_t *buff, size_t len, int overtimems) {
for (size_t i = 0; i < overtimems; i++) {
osDelay(3);
if (HAL_UART_GetState(huart) == HAL_UART_STATE_READY) {
#if PRV_DEBUG
if (status == HAL_OK) {
printf("uart_rx:");
for (size_t i = 0; i < len; i++) {
printf("%02x ", buff[i]);
if (m_dump) {
if (status == HAL_OK) {
printf("uart_rx:");
for (size_t i = 0; i < len; i++) {
printf("%02x ", buff[i]);
}
printf("\n");
}
printf("\n");
}
#endif
return true;
}
}

4
modbus/modbus_block_host.hpp

@ -1,7 +1,7 @@
#pragma once
//
#include "stm32basic/zbasic.h"
#include "stm32basic/stm32basic.hpp"
#include "stm32basic/zbasic.h"
namespace iflytop {
class ModbusBlockHost {
@ -11,12 +11,14 @@ class ModbusBlockHost {
uint8_t rxbuff[100];
zmutex m_modbus_lock;
bool m_dump= false;
public:
ModbusBlockHost();
~ModbusBlockHost();
void initialize(UART_HandleTypeDef *huart);
void enableDump(bool enable);
bool readReg03(uint8_t slaveAddr, uint16_t regAddr, uint16_t *regVal, int overtimems);
bool readReg03Muti(uint8_t slaveAddr, uint16_t regAddr, uint16_t *regVal, int regNum, int overtimems);

Loading…
Cancel
Save