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; this->huart = huart;
m_modbus_lock.init(); m_modbus_lock.init();
} }
void ModbusBlockHost::enableDump(bool enable) { m_dump = enable; }
void ModbusBlockHost::cleanRxBuff() { // void ModbusBlockHost::cleanRxBuff() { //
HAL_StatusTypeDef status; HAL_StatusTypeDef status;
do { do {
@ -23,13 +25,13 @@ void ModbusBlockHost::cleanRxBuff() { //
void ModbusBlockHost::uarttx(uint8_t *buff, size_t len) { void ModbusBlockHost::uarttx(uint8_t *buff, size_t len) {
ZASSERT(len < sizeof(txbuff)); 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_Transmit(huart, buff, len, 1000);
HAL_UART_DMAStop(huart); HAL_UART_DMAStop(huart);
HAL_StatusTypeDef ret = HAL_UART_Transmit_DMA(huart, buff, len); 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++) { for (size_t i = 0; i < overtimems; i++) {
osDelay(3); osDelay(3);
if (HAL_UART_GetState(huart) == HAL_UART_STATE_READY) { 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; return true;
} }
} }

4
modbus/modbus_block_host.hpp

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

Loading…
Cancel
Save