diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index cc9548e..fbe7e0a 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/Core/Src/usart.c b/Core/Src/usart.c
index e7b3bfc..ca70073 100644
--- a/Core/Src/usart.c
+++ b/Core/Src/usart.c
@@ -76,7 +76,7 @@ void MX_USART2_UART_Init(void)
huart2.Instance = USART2;
huart2.Init.BaudRate = 19200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
- huart2.Init.StopBits = UART_STOPBITS_1;
+ huart2.Init.StopBits = UART_STOPBITS_2;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
@@ -103,9 +103,9 @@ void MX_USART3_UART_Init(void)
/* USER CODE END USART3_Init 1 */
huart3.Instance = USART3;
- huart3.Init.BaudRate = 9600;
+ huart3.Init.BaudRate = 19200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
- huart3.Init.StopBits = UART_STOPBITS_1;
+ huart3.Init.StopBits = UART_STOPBITS_2;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
diff --git a/dbdb_power_control_mini_board_protocol_v1.ioc b/dbdb_power_control_mini_board_protocol_v1.ioc
index f607c51..bf9f9cb 100644
--- a/dbdb_power_control_mini_board_protocol_v1.ioc
+++ b/dbdb_power_control_mini_board_protocol_v1.ioc
@@ -354,10 +354,12 @@ USART1.BaudRate=460800
USART1.IPParameters=VirtualMode,BaudRate
USART1.VirtualMode=VM_ASYNC
USART2.BaudRate=19200
-USART2.IPParameters=VirtualMode,BaudRate
+USART2.IPParameters=VirtualMode,BaudRate,StopBits
+USART2.StopBits=STOPBITS_2
USART2.VirtualMode=VM_ASYNC
-USART3.BaudRate=9600
-USART3.IPParameters=VirtualMode,BaudRate
+USART3.BaudRate=19200
+USART3.IPParameters=VirtualMode,BaudRate,StopBits
+USART3.StopBits=STOPBITS_2
USART3.VirtualMode=VM_ASYNC
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
diff --git a/usrc/base/hardware.cpp b/usrc/base/hardware.cpp
index a8f298d..6bdc14b 100644
--- a/usrc/base/hardware.cpp
+++ b/usrc/base/hardware.cpp
@@ -41,15 +41,18 @@ HPP272 m_H2o2Sensor_HPP272; // H2O2传感器
int32_t m_h2o2sensor_detectId = -1;
#endif
-static void onAdcCaptureThreadId(void const* argument) {
+static void onAdcCaptureThreadId(void const* argument) { Hardware::ins().onAdcCaptureThread(); }
+static void onH2O2CaptureThreadId(void const* argument) { Hardware::ins().onH2O2CaptureThread(); }
+
+void Hardware::onAdcCaptureThread() {
while (1) {
osDelay(30);
m_Heater_electricCurrentAdc.updateAdcValToCache();
m_Heater_temperatureAdc.updateAdcValToCache();
+ heater_read_temperature_data(); // 为了调试打印方便
}
}
-
-static void onH2O2CaptureThreadId(void const* argument) {
+void Hardware::onH2O2CaptureThread() {
while (1) {
osDelay(1000);
@@ -77,16 +80,16 @@ void Hardware::init() {
m_Heater_ctrlGpio.initAsOutput(PC6, kxs_gpio_nopull, true, false);
m_Heater_safeCtrlGpio.initAsOutput(PC7, kxs_gpio_nopull, true, false);
// m_Heater_electricCurrentAdc.initialize(&hadc1, ADC_CHANNEL_0); //暂时注释掉,板子少了一个ADC,该ADC用于H2O2浓度
- m_Heater_temperatureAdc.initialize(&hadc1, ADC_CHANNEL_1); // PA0
+ m_Heater_temperatureAdc.initialize("HeaterTemp", &hadc1, ADC_CHANNEL_1); // PA1
osDelay(2000); // 等待传感器上电
#ifdef H2O2_SENSOR_TYPE_HMP110
- ZASSERT(huart2.Init.BaudRate == 19200);
- ZASSERT(huart2.Init.StopBits == UART_STOPBITS_2);
- m_H2o2Sensor_ModbusBlockHost.initialize(&huart2);
- m_H2o2Sensor_H2O2Adc.initialize(&hadc1, ADC_CHANNEL_10); //
+ ZASSERT(huart3.Init.BaudRate == 19200);
+ ZASSERT(huart3.Init.StopBits == UART_STOPBITS_2);
+ m_H2o2Sensor_ModbusBlockHost.initialize(&huart3);
+ m_H2o2Sensor_H2O2Adc.initialize("H2O2", &hadc1, ADC_CHANNEL_0); //
m_H2o2Sensor_HMP110.init(&m_H2o2Sensor_ModbusBlockHost);
if (m_H2o2Sensor_HMP110.ping(1)) {
@@ -167,7 +170,10 @@ int32_t Hardware::heater_read_temperature_data() {
// float ppm = (ma - 4) / (20 - 4) * 2000;
int32_t adcv = m_Heater_temperatureAdc.getCacheVal();
int32_t ma = (adcv / 4095.0 * 3.3 * 1000) / 150.0;
- int32_t temp = (ma - 4) / (20 - 4) * (3000 - 0) + 0;
+ // int32_t temp = (ma - 4) / (20 - 4) * (3000 - 0) + 0;
+ int32_t temp = (ma - 4) / (20 - 4) * (2500 - 0) + 0;
+
+ // ZLOGI(TAG, "tadcv: %d ma:%d temp %d", adcv, ma, temp);
return temp; // C*10
}
@@ -217,8 +223,9 @@ int32_t Hardware::h2o2_sensor_read_sub_ic_reg(int32_t add, uint16_t* val, size_t
}
int32_t Hardware::h2o2_sensor_data(report_h2o2_data_t* readdata) {
#ifdef H2O2_SENSOR_TYPE_HMP110
- int32_t ecode = m_H2o2Sensor_HMP110.read_cache_errorcode();
- int32_t h2o2adcVal = m_H2o2Sensor_H2O2Adc.getCacheVal();
+ int32_t ecode = m_H2o2Sensor_HMP110.read_cache_errorcode();
+ int32_t h2o2adcVal = m_H2o2Sensor_H2O2Adc.getCacheVal();
+
HMP110::hmp110_sensordata_t sensordata;
m_H2o2Sensor_HMP110.read_cache_sensor_data(&sensordata);
@@ -234,6 +241,8 @@ int32_t Hardware::h2o2_sensor_data(report_h2o2_data_t* readdata) {
readdata->temp = sensordata.temp;
readdata->saturation = 0;
+ // ZLOGI(TAG, "h2o2 adc:%d ma:%d ppm:%d", h2o2adcVal, h2o2ma, h2o2ppm);
+
ZLOGI(TAG, "ecode: %d ppm:%d, rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
ecode, //
h2o2ppm, //
diff --git a/usrc/base/hardware.hpp b/usrc/base/hardware.hpp
index 9152e15..26d0a61 100644
--- a/usrc/base/hardware.hpp
+++ b/usrc/base/hardware.hpp
@@ -12,7 +12,6 @@
#include "zsdk/zadc.hpp"
#include "zsdk/zsdk.hpp"
-
namespace iflytop {
class Hardware {
public:
@@ -36,6 +35,8 @@ class Hardware {
int32_t h2o2_sensor_read_sub_ic_errorcode();
int32_t h2o2_sensor_read_sub_ic_reg(int32_t add, uint16_t* val, size_t len);
int32_t h2o2_sensor_data(report_h2o2_data_t* readdata);
-};
+ void onAdcCaptureThread();
+ void onH2O2CaptureThread();
+};
} // namespace iflytop
diff --git a/zsdk b/zsdk
index 2d0aea4..28781e5 160000
--- a/zsdk
+++ b/zsdk
@@ -1 +1 @@
-Subproject commit 2d0aea4bda82668626ba11d42658eb2f36f48119
+Subproject commit 28781e5b4d0910f77bade8f49d8c6925b74b2ecf