|
@ -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; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|