This commit is contained in:
2026-02-24 09:58:06 +08:00
parent fb4e311fbe
commit 9d69b29eed
161 changed files with 20379 additions and 7340 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
#include "app_com.h"

View File

@@ -1,28 +0,0 @@
#ifndef _APP_COM_H_
#define _APP_COM_H_
#include "main.h"
#include "app_leakage.h"
#include "bsp_uart.h"
#define APP_COM_NUM (4)
typedef struct
{
u8 baudrate; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
}app_com_flash_data_t;
typedef struct
{
app_com_flash_data_t flash_data; /*flash<73><68><EFBFBD><EFBFBD>*/
u16 device_num; /*<2A>󶨵<EFBFBD><F3B6A8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
u8 device_index[APP_LEAKAGE_SUB_DEVICE_NUM]; /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
bsp_uart_t *uart; /*<2A>󶨵<EFBFBD><F3B6A8B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>*/
}app_com_class_t;
typedef struct
{
app_com_class_t com_class[APP_COM_NUM];
}app_com_t;
#endif

View File

@@ -1,505 +0,0 @@
#include "proto_modbus_master_tdlas.h"
#include "string.h"
#include "stdio.h"
#include "app.h"
#include "app_timer.h"
#include "bsp_Uart.h"
#include "bsp_74HC4067.h"
#include "bsp_Flash.h"
#include "app_leakage.h"
#include "proto_print.h"
#include "proto_modbus_lib.h"
#define TDLAS_MODBUS_ID (0xe8)
#define TDLAS_DATA_ENDIAN (LITTLE_ENDIAN) /*<2A><><EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>*/
#define PROTO_LEAKAGE_READ_DATA_NUM (14) /*<2A><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define PROTO_TDLAS_GET_CURR_DATA_START_ADDR (0x0000)
#define PROTO_TDLAS_SET_ZERO_CALIB_START_ADDR (12)
#define PROTO_TDLAS_SET_SPAN_CALIB_START_ADDR (13)
#define PROTO_TDLAS_GET_RESET_START_ADDR (0x0000)
#define PROTO_TDLAS_GET_FAC_CALIB_START_ADDR (11010)
#define PROTO_TDLAS_GET_FAC_CALIB_PARA_SET_START_ADDR (11000)
#define PROTO_TDLAS_GET_FAC_CALIB_DATA_START_ADDR (250)
static void proto_tdlas_init(void);
static void proto_tdlas_control_zero_calib(u16 calib_value);
static void proto_tdlas_control_span_calib(u16 CalibValue);
static void proto_tdlas_control_reset(void);
static void proto_tdlas_control_fac_calib(u16 calib_value,u8 calib_point,u8 temp_point);
static void proto_tdlas_control_fac_calib_para_set(s16 temp,u16 press,u16 humidity);
static void proto_tdlas_tx_task(void);
static void proto_tdlas_rx_task(u8 *p_data,u16 len,void *other_data);
static void proto_tdlas_control_fac_calib_data_get(u8 ch);
/*<2A><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>*/
static bsp_uart_t *rx_uart = NULL;
proto_tdlas_t tdlas=
{
.modbus_id = TDLAS_MODBUS_ID,
.init = proto_tdlas_init,
.tx_task = proto_tdlas_tx_task,
.rx_task = proto_tdlas_rx_task,
// .print = proto_tdlas_print_debug_data,
.control.zero_calib = proto_tdlas_control_zero_calib,
.control.span_calib = proto_tdlas_control_span_calib,
.control.reset = proto_tdlas_control_reset,
.control.fac_calib = proto_tdlas_control_fac_calib,
.control.fac_calib_para_set = proto_tdlas_control_fac_calib_para_set,
.control.fac_calib_data_get = proto_tdlas_control_fac_calib_data_get,
};
proto_tdlas_t *p_sensor = &tdlas;
bsp_uart_t *p_use_uart = &com_uart4;
static void proto_tdlas_init(void)
{
com_uart4.rx_data_analysis = p_sensor->rx_task;
}
static void proto_tdlas_send(u8 *p_data,u16 len)
{
com_uart4.send(&com_uart4,p_data,len);
}
static void proto_sensor_switch(u8 ch)
{
UartCH_Config.ch_set(ch);
}
/*<2A><><EFBFBD><EFBFBD>У׼*/
static void proto_tdlas_control_zero_calib(u16 calib_value)
{
u8 i;
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
{
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_ZERO_CALIB;
p_sensor->set_data.calib_value = calib_value;
}
}
/*<2A><><EFBFBD><EFBFBD>У׼ */
static void proto_tdlas_control_span_calib(u16 CalibValue)
{
u8 i;
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
{
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_SPAN_CALIB;
p_sensor->set_data.calib_value = CalibValue;
}
}
/*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
static void proto_tdlas_control_reset(void)
{
u8 i;
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
{
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_RESET;
}
}
/*<2A><><EFBFBD>ұ궨*/
static void proto_tdlas_control_fac_calib(u16 calib_value,u8 calib_point,u8 temp_point)
{
u8 i;
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
{
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB;
p_sensor->set_data.calib_value = calib_value;
p_sensor->set_data.calib_point = calib_point;
p_sensor->set_data.temp_point = temp_point;
}
}
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
static void proto_tdlas_control_fac_calib_para_set(s16 temp,u16 press,u16 humidity)
{
u8 i;
for(i=0;i<Usr_Flash.FlashData.modbus_read_sensor_num;i++)
{
p_sensor->sys[i].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET;
p_sensor->set_data.temp = (-1 == temp) ? p_sensor->set_data.temp : temp;
p_sensor->set_data.humidity = (0xffff == humidity) ? p_sensor->set_data.humidity : humidity;
p_sensor->set_data.press = (0xffff == press) ? p_sensor->set_data.press : press;
}
}
/*<2A><>ȡ<EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>*/
static void proto_tdlas_control_fac_calib_data_get(u8 ch)
{
if(Usr_Flash.FlashData.modbus_read_sensor_num > ch)
{
p_sensor->sensor_index = ch;
p_sensor->sys[ch].sys_state = PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET;
proto_sensor_switch(ch);
}
}
/********<2A><><EFBFBD><EFBFBD>***********/
static void proto_tdlas_tx_curr_data_get(void)
{
u16 addr = PROTO_TDLAS_GET_CURR_DATA_START_ADDR;
u8 len = PROTO_LEAKAGE_READ_DATA_NUM;
modbus_lib_data_read(p_sensor->modbus_id,addr,len,proto_tdlas_send);
}
static void proto_tdlas_tx_zero_calib(void)
{
u16 addr = PROTO_TDLAS_SET_ZERO_CALIB_START_ADDR;
u8 len = 1;
u16 data[1];
data[0] = 0;
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_span_calib(void)
{
u16 addr = PROTO_TDLAS_SET_SPAN_CALIB_START_ADDR;
u8 len = 1;
u16 data[1];
data[0] = p_sensor->set_data.calib_value;
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_Reset(void)
{
u16 addr = PROTO_TDLAS_GET_RESET_START_ADDR;
u8 len = 1;
u16 data[1];
data[0] = 0x00FE;
//modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_fac_calib(void)
{
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_START_ADDR;
u8 len = 1;
u16 data[1];
data[0] = p_sensor->set_data.calib_value;
addr = addr + p_sensor->set_data.temp_point * 10 + p_sensor->set_data.calib_point;
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_fac_calib_para_set(void)
{
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_PARA_SET_START_ADDR;
u8 len = 3;
u16 data[3];
data[0] = *((u16 *)(&p_sensor->set_data.temp)); /*<2A><EFBFBD>*/
data[1] = p_sensor->set_data.press; /*ѹ<><D1B9>*/
data[2] = p_sensor->set_data.humidity; /*ʪ<><CAAA>*/
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_fac_calib_data_get(void)
{
u16 addr = PROTO_TDLAS_GET_FAC_CALIB_DATA_START_ADDR;
u8 len = 1;
u16 data[1];
data[0] = 3; /*<2A><EFBFBD>*/
modbus_lib_multiple_data_write(p_sensor->modbus_id,addr,len,data,proto_tdlas_send);
}
static void proto_tdlas_tx_task(void)
{
u8 SendFlag = 0;
proto_tdlas_sys_t *p_sensor_sys;
p_sensor_sys = &p_sensor->sys[p_sensor->sensor_index];
if(0 == (p_sensor_sys->state_error_flag & (0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT)))
{
if((++p_sensor_sys->tx_time_out_count) > 8)/*ͨѶ<CDA8><D1B6>ʱ*/
{
p_sensor_sys->state_error_flag |= (0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
memset(&gas_data[p_sensor->sensor_index],0,sizeof(gas_data_t));
}
}
switch(p_sensor_sys->sys_state)
{
case PROTO_TDLAS_SYS_STATE_INIT:
{
}break;
case PROTO_TDLAS_SYS_STATE_CURR_DATA_GET:
{
proto_tdlas_tx_curr_data_get();
}break;
case PROTO_TDLAS_SYS_STATE_ZERO_CALIB:
{
proto_tdlas_tx_zero_calib();
}break;
case PROTO_TDLAS_SYS_STATE_SPAN_CALIB:
{
proto_tdlas_tx_span_calib();
}break;
case PROTO_TDLAS_SYS_STATE_RESET:
{
proto_tdlas_tx_Reset();
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB:
{
proto_tdlas_tx_fac_calib();
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET:
{
proto_tdlas_tx_fac_calib_para_set();
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET:
{
if(0 == p_sensor_sys->send_time)
{
p_use_uart->relay.flag = 1;
proto_tdlas_tx_fac_calib_data_get();
}
p_sensor_sys->send_time++;
if(p_sensor_sys->send_time > 50)
{
p_use_uart->relay.flag = 0;
p_sensor_sys->send_time = 0;
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
p_sensor->sensor_index++;
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
{
p_sensor->sensor_index = 0;
}
proto_sensor_switch(p_sensor->sensor_index);
}
SendFlag = 1;
}break;
default:
{
}break;
}
if(SendFlag)
{
return ;
}
else
{
p_sensor_sys->send_time++;
if(p_sensor_sys->send_time >= 3) /*<2A><><EFBFBD><EFBFBD><EFBFBD>쳣*/
{
p_sensor_sys->state_error_flag |= (0x00000001 << p_sensor_sys->sys_state);/*<2A><>¼<EFBFBD>쳣״̬*/
p_sensor_sys->send_time = 0;
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
p_sensor->sensor_index++;
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
{
p_sensor->sensor_index = 0;
}
proto_sensor_switch(p_sensor->sensor_index);
}
}
}
static void proto_tdlas_rx_task(u8 *p_data,u16 len,void *other_data)
{
u8 send_time_flag = 0;
u8 modbus_id,cmd;
u16 check_crc16,modbus_crc16;
u16 *p_u16_temp;
u16 i,ch;
u8 *p_rx_valid,temp_value;
proto_tdlas_sys_t *p_sensor_sys;
p_sensor_sys = &p_sensor->sys[p_sensor->sensor_index];
if( p_use_uart->relay.flag == 1)
{
p_use_uart->relay.uart->send(p_use_uart->relay.uart,p_data,len);
}
if(p_sensor->modbus_id != p_data[0])
{
p_data = &p_data[1];
len -= 1;
}
modbus_id = *p_data;
cmd = *(p_data+1);
check_crc16 = p_data[len-2] << 8 | p_data[len-1];
if(modbus_id != p_sensor->modbus_id) return ;
if(cmd != 0x03 && cmd != 0x06 && cmd != 0x10 && cmd != 0x41) return ;
modbus_crc16 = modbus_lib_crc16(p_data,len-2);
modbus_crc16 = (modbus_crc16 >> 8) | (modbus_crc16 << 8);
if(check_crc16 != modbus_crc16) return ;
if(cmd == 0x41)
{
p_rx_valid = &p_data[6];
}
u8 byte_count = p_data[3];
p_rx_valid = &p_data[3];
rx_uart = (bsp_uart_t *)other_data;
p_sensor_sys->tx_time_out_count = 0;
p_sensor_sys->state_error_flag &= (~(0x00000001 << PROTO_TDLAS_ERROR_FLAG_TIME_OUT));
switch(p_sensor_sys->sys_state)
{
case PROTO_TDLAS_SYS_STATE_INIT:
{
}break;
case PROTO_TDLAS_SYS_STATE_CURR_DATA_GET:
{
/*<2A><><EFBFBD>㵱ǰ<E3B5B1><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
u8 device_global_idx = p_sensor->sensor_index;
if(device_global_idx >= APP_LEAKAGE_SUB_DEVICE_NUM)
{
break;
}
/*ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
for(ch = 0;ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state = 0;
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state = 0;
}
if(byte_count >=28)
{
ch = 0;
temp_value = (p_rx_valid[0] << 8) | p_rx_valid[1];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
}
temp_value = (p_rx_valid[2] << 8) | p_rx_valid[3];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
}
temp_value = (p_rx_valid[4] << 8) | p_rx_valid[5];
p_leakage->sub_device_data[device_global_idx].ch_data[ch].distance = temp_value *0.01;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x0003*/
temp_value = (p_rx_valid[6] << 8) | p_rx_valid[7];
p_leakage->sub_device_data[device_global_idx].heartbeat = temp_value & 0xFF;
/*ͨ<><CDA8>2<EFBFBD><32>0x0004-0x0006*/
ch = 1;
temp_value = (p_rx_valid[8] << 8) | p_rx_valid[9];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
}
temp_value = (p_rx_valid[10] << 8) | p_rx_valid[11];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
}
temp_value = (p_rx_valid[12] << 8) | p_rx_valid[13];
p_leakage->sub_device_data[device_global_idx].ch_data[ch].distance = temp_value *0.01;
/*<2A><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>0x0007*/
temp_value = (p_rx_valid[14] << 8) | p_rx_valid[15];
p_leakage->sub_device_data[device_global_idx].test_mode = temp_value & 0xFF;
/*ͨ<><CDA8>3<EFBFBD><33>0x0008-0x000A*/
ch = 2;
temp_value = (p_rx_valid[16] << 8) | p_rx_valid[17];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
}
temp_value = (p_rx_valid[18] << 8) | p_rx_valid[19];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
}
temp_value = (p_rx_valid[20] << 8) | p_rx_valid[21];
p_leakage->sub_device_data[device_global_idx].ch_data[ch].distance = temp_value *0.01;
/* ͨ<><CDA8>4<EFBFBD><34>0x000B-0x000D*/
ch = 3;
temp_value = (p_rx_valid[22] << 8) | p_rx_valid[23];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
}
temp_value = (p_rx_valid[24] << 8) | p_rx_valid[25];
if(temp_value == 1) {
p_leakage->sub_device_data[device_global_idx].ch_data[ch].state |=
APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
}
temp_value = (p_rx_valid[26] << 8) | p_rx_valid[27];
p_leakage->sub_device_data[device_global_idx].ch_data[ch].distance = temp_value *0.01;
}
}break;
case PROTO_TDLAS_SYS_STATE_ZERO_CALIB:
{
}break;
case PROTO_TDLAS_SYS_STATE_SPAN_CALIB:
{
}break;
case PROTO_TDLAS_SYS_STATE_RESET:
{
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB:
{
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET:
{
}break;
case PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET:
{
}break;
}
if(send_time_flag)
{
return;
}
else
{
p_sensor_sys->sys_state = PROTO_TDLAS_SYS_STATE_CURR_DATA_GET;
p_sensor_sys->state_error_flag &= (~(0x00000001 << p_sensor_sys->sys_state));/*<2A><><EFBFBD><EFBFBD><EFBFBD>쳣״̬*/
p_sensor_sys->send_time = 0;
p_sensor->sensor_index++;
if(p_sensor->sensor_index >= Usr_Flash.FlashData.modbus_read_sensor_num)
{
p_sensor->sensor_index = 0;
}
proto_sensor_switch(p_sensor->sensor_index);
return;
}
}

View File

@@ -1,68 +0,0 @@
#ifndef _PROTO_MODBUS_MASTER_SENSOR_H_
#define _PROTO_MODBUS_MASTER_SENSOR_H_
#include "main.h"
#include "gas_data.h"
/*NIDR״̬*/
#define PROTO_TDLAS_SYS_STATE_INIT (0U) /*<2A><>ʼ<EFBFBD><CABC> */
#define PROTO_TDLAS_SYS_STATE_CURR_DATA_GET (1U) /*<2A><>ȡʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>*/
#define PROTO_TDLAS_SYS_STATE_ZERO_CALIB (2U) /*<2A><><EFBFBD><EFBFBD>У׼ */
#define PROTO_TDLAS_SYS_STATE_SPAN_CALIB (3U) /*<2A><><EFBFBD><EFBFBD>У׼ */
#define PROTO_TDLAS_SYS_STATE_RESET (4U) /*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD> */
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB (5U) /*<2A><><EFBFBD>ұ궨 */
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB_PARA_SET (6U) /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define PROTO_TDLAS_SYS_STATE_FAC_CALIB_DATA_GET (7U) /*<2A><>ȡ<EFBFBD><EFBFBD><EAB6A8>Ϣ*/
#define PROTO_TDLAS_ERROR_FLAG_TIME_OUT (30U) /*ͨѶ<CDA8><D1B6>ʱ*/
typedef struct
{
void (*zero_calib)(u16); /*<2A><><EFBFBD><EFBFBD>У׼*/
void (*span_calib)(u16); /*<2A><><EFBFBD>̵<EFBFBD>У׼*/
void (*reset)(void); /*<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
void (*fac_calib)(u16,u8,u8); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1>Ũ<EFBFBD><C5A8>*/
void (*fac_calib_para_set)(s16,u16,u16); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1><EFBFBD>õ<EFBFBD><C3B5>¶ȡ<C2B6>ʪ<EFBFBD>ȡ<EFBFBD>ѹ<EFBFBD><D1B9>*/
void (*fac_calib_data_get)(u8); /*<2A><><EFBFBD>ұ궨ʱ<EAB6A8><CAB1><EFBFBD>õ<EFBFBD><C3B5>¶ȡ<C2B6>ʪ<EFBFBD>ȡ<EFBFBD>ѹ<EFBFBD><D1B9>*/
}proto_tdlas_control_t;
typedef struct
{
u8 sys_state;
u16 send_time; /*<2A><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>*/
u32 sensor_state; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬*/
u8 print_flag; /*ʵʱ<CAB5><CAB1><EFBFBD>ݴ<EFBFBD>ӡ<EFBFBD><D3A1>־λ*/
u32 state_error_flag; /*ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ*/
u16 tx_time_out_count; /*Э<><D0AD>ָ<EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>*/
}proto_tdlas_sys_t;
typedef struct
{
u8 calib_point;
u8 temp_point;
u16 calib_value;
s16 temp;
u16 humidity;
u16 press;
}proto_tdlas_set_data_t;
typedef struct
{
u8 modbus_id;
u16 sensor_index; /*<2A><>ǰ<EFBFBD><C7B0><EFBFBD>ĸ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>*/
proto_tdlas_set_data_t set_data;
proto_tdlas_sys_t sys[SENSOR_NUM];
proto_tdlas_control_t control;
void (*init)(void);
void (*tx_task)(void);
void (*rx_task)(u8 *,u16,void *);
void (*print)(void);
void (*warm_task)(void);
}proto_tdlas_t;
extern proto_tdlas_t tdlas;
#endif

View File

@@ -32,6 +32,7 @@ extern "C" {
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "sys.h"
#include "usr_config.h"
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
@@ -69,10 +70,12 @@ void Error_Handler(void);
#define RS485_3_EN_GPIO_Port GPIOB
#define RS485_4_EN_Pin GPIO_PIN_7
#define RS485_4_EN_GPIO_Port GPIOE
#define JK2_Pin GPIO_PIN_9
#define JK2_GPIO_Port GPIOE
#define JK3_Pin GPIO_PIN_10
#define JK3_GPIO_Port GPIOE
#define RELAY_1_Pin GPIO_PIN_8
#define RELAY_1_GPIO_Port GPIOE
#define RELAY_2_Pin GPIO_PIN_9
#define RELAY_2_GPIO_Port GPIOE
#define RELAY_3_Pin GPIO_PIN_10
#define RELAY_3_GPIO_Port GPIOE
#define W5500_SPI1_CS_Pin GPIO_PIN_11
#define W5500_SPI1_CS_GPIO_Port GPIOE
#define SPI2_CS_Pin GPIO_PIN_12
@@ -85,8 +88,10 @@ void Error_Handler(void);
#define DS1302_DIO_GPIO_Port GPIOD
#define DS1302_RST_Pin GPIO_PIN_5
#define DS1302_RST_GPIO_Port GPIOD
#define JK4_Pin GPIO_PIN_5
#define JK4_GPIO_Port GPIOB
#define BUZZER_Pin GPIO_PIN_4
#define BUZZER_GPIO_Port GPIOB
#define RELAY_4_Pin GPIO_PIN_5
#define RELAY_4_GPIO_Port GPIOB
#define RS485_EN_Pin GPIO_PIN_8
#define RS485_EN_GPIO_Port GPIOB

View File

@@ -55,15 +55,21 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void DMA1_Stream1_IRQHandler(void);
void DMA1_Stream2_IRQHandler(void);
void DMA1_Stream3_IRQHandler(void);
void DMA1_Stream4_IRQHandler(void);
void DMA1_Stream5_IRQHandler(void);
void DMA1_Stream6_IRQHandler(void);
void USART1_IRQHandler(void);
void USART2_IRQHandler(void);
void USART3_IRQHandler(void);
void UART4_IRQHandler(void);
void DMA2_Stream1_IRQHandler(void);
void DMA2_Stream2_IRQHandler(void);
void DMA2_Stream6_IRQHandler(void);
void DMA2_Stream7_IRQHandler(void);
void USART6_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

View File

@@ -44,9 +44,15 @@ void MX_DMA_Init(void)
__HAL_RCC_DMA2_CLK_ENABLE();
/* DMA interrupt init */
/* DMA1_Stream1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
/* DMA1_Stream2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
/* DMA1_Stream3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
/* DMA1_Stream4_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
@@ -56,9 +62,15 @@ void MX_DMA_Init(void)
/* DMA1_Stream6_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
/* DMA2_Stream1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
/* DMA2_Stream2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
/* DMA2_Stream6_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
/* DMA2_Stream7_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);

View File

@@ -57,10 +57,11 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, RS485_1_EN_Pin|RS485_2_EN_Pin|RS485_3_EN_Pin|SPI2_CS_Pin
|JK4_Pin|RS485_EN_Pin, GPIO_PIN_RESET);
|BUZZER_Pin|RELAY_4_Pin|RS485_EN_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, RS485_4_EN_Pin|JK2_Pin|JK3_Pin|W5500_SPI1_CS_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, RS485_4_EN_Pin|RELAY_1_Pin|RELAY_2_Pin|RELAY_3_Pin
|W5500_SPI1_CS_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
@@ -76,23 +77,23 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
PBPin */
PBPin PBPin */
GPIO_InitStruct.Pin = RS485_1_EN_Pin|RS485_2_EN_Pin|RS485_3_EN_Pin|SPI2_CS_Pin
|RS485_EN_Pin;
|BUZZER_Pin|RS485_EN_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PEPin PEPin */
GPIO_InitStruct.Pin = RS485_4_EN_Pin|W5500_SPI1_CS_Pin;
/*Configure GPIO pins : PEPin PEPin PEPin */
GPIO_InitStruct.Pin = RS485_4_EN_Pin|RELAY_1_Pin|W5500_SPI1_CS_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/*Configure GPIO pins : PEPin PEPin */
GPIO_InitStruct.Pin = JK2_Pin|JK3_Pin;
GPIO_InitStruct.Pin = RELAY_2_Pin|RELAY_3_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@@ -113,11 +114,11 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = JK4_Pin;
GPIO_InitStruct.Pin = RELAY_4_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(JK4_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_Init(RELAY_4_GPIO_Port, &GPIO_InitStruct);
}

View File

@@ -64,9 +64,15 @@ extern DMA_HandleTypeDef hdma_usart1_rx;
extern DMA_HandleTypeDef hdma_usart1_tx;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern DMA_HandleTypeDef hdma_usart3_rx;
extern DMA_HandleTypeDef hdma_usart3_tx;
extern DMA_HandleTypeDef hdma_usart6_rx;
extern DMA_HandleTypeDef hdma_usart6_tx;
extern UART_HandleTypeDef huart4;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
extern UART_HandleTypeDef huart6;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@@ -197,7 +203,9 @@ void SysTick_Handler(void)
app_timer.increment_int(1);
com_uart1.rx_time_increment_int(&com_uart1,1);
com_uart2.rx_time_increment_int(&com_uart2,1);
com_uart3.rx_time_increment_int(&com_uart3,1);
com_uart4.rx_time_increment_int(&com_uart4,1);
com_uart6.rx_time_increment_int(&com_uart6,1);
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
@@ -212,6 +220,20 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f4xx.s). */
/******************************************************************************/
/**
* @brief This function handles DMA1 stream1 global interrupt.
*/
void DMA1_Stream1_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream1_IRQn 0 */
/* USER CODE END DMA1_Stream1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart3_rx);
/* USER CODE BEGIN DMA1_Stream1_IRQn 1 */
/* USER CODE END DMA1_Stream1_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream2 global interrupt.
*/
@@ -226,6 +248,20 @@ void DMA1_Stream2_IRQHandler(void)
/* USER CODE END DMA1_Stream2_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream3 global interrupt.
*/
void DMA1_Stream3_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
/* USER CODE END DMA1_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart3_tx);
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
/* USER CODE END DMA1_Stream3_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream4 global interrupt.
*/
@@ -304,6 +340,20 @@ void USART2_IRQHandler(void)
/* USER CODE END USART2_IRQn 1 */
}
/**
* @brief This function handles USART3 global interrupt.
*/
void USART3_IRQHandler(void)
{
/* USER CODE BEGIN USART3_IRQn 0 */
/* USER CODE END USART3_IRQn 0 */
HAL_UART_IRQHandler(&huart3);
/* USER CODE BEGIN USART3_IRQn 1 */
/* USER CODE END USART3_IRQn 1 */
}
/**
* @brief This function handles UART4 global interrupt.
*/
@@ -322,6 +372,20 @@ void UART4_IRQHandler(void)
/* USER CODE END UART4_IRQn 1 */
}
/**
* @brief This function handles DMA2 stream1 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
/* USER CODE END DMA2_Stream1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart6_rx);
/* USER CODE BEGIN DMA2_Stream1_IRQn 1 */
/* USER CODE END DMA2_Stream1_IRQn 1 */
}
/**
* @brief This function handles DMA2 stream2 global interrupt.
*/
@@ -336,6 +400,20 @@ void DMA2_Stream2_IRQHandler(void)
/* USER CODE END DMA2_Stream2_IRQn 1 */
}
/**
* @brief This function handles DMA2 stream6 global interrupt.
*/
void DMA2_Stream6_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
/* USER CODE END DMA2_Stream6_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart6_tx);
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
/* USER CODE END DMA2_Stream6_IRQn 1 */
}
/**
* @brief This function handles DMA2 stream7 global interrupt.
*/
@@ -350,6 +428,20 @@ void DMA2_Stream7_IRQHandler(void)
/* USER CODE END DMA2_Stream7_IRQn 1 */
}
/**
* @brief This function handles USART6 global interrupt.
*/
void USART6_IRQHandler(void)
{
/* USER CODE BEGIN USART6_IRQn 0 */
/* USER CODE END USART6_IRQn 0 */
HAL_UART_IRQHandler(&huart6);
/* USER CODE BEGIN USART6_IRQn 1 */
/* USER CODE END USART6_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@@ -35,6 +35,10 @@ DMA_HandleTypeDef hdma_usart1_rx;
DMA_HandleTypeDef hdma_usart1_tx;
DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart2_tx;
DMA_HandleTypeDef hdma_usart3_rx;
DMA_HandleTypeDef hdma_usart3_tx;
DMA_HandleTypeDef hdma_usart6_rx;
DMA_HandleTypeDef hdma_usart6_tx;
/* UART4 init function */
void MX_UART4_Init(void)
@@ -397,6 +401,46 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USART3 DMA Init */
/* USART3_RX Init */
hdma_usart3_rx.Instance = DMA1_Stream1;
hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4;
hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart3_rx.Init.Mode = DMA_NORMAL;
hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx);
/* USART3_TX Init */
hdma_usart3_tx.Instance = DMA1_Stream3;
hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4;
hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart3_tx.Init.Mode = DMA_NORMAL;
hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart3_tx);
/* USART3 interrupt Init */
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspInit 1 */
/* USER CODE END USART3_MspInit 1 */
@@ -421,6 +465,46 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USART6 DMA Init */
/* USART6_RX Init */
hdma_usart6_rx.Instance = DMA2_Stream1;
hdma_usart6_rx.Init.Channel = DMA_CHANNEL_5;
hdma_usart6_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_usart6_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart6_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart6_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart6_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart6_rx.Init.Mode = DMA_NORMAL;
hdma_usart6_rx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart6_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart6_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart6_rx);
/* USART6_TX Init */
hdma_usart6_tx.Instance = DMA2_Stream6;
hdma_usart6_tx.Init.Channel = DMA_CHANNEL_5;
hdma_usart6_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_usart6_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart6_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart6_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart6_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart6_tx.Init.Mode = DMA_NORMAL;
hdma_usart6_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart6_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart6_tx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart6_tx);
/* USART6 interrupt Init */
HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART6_IRQn);
/* USER CODE BEGIN USART6_MspInit 1 */
/* USER CODE END USART6_MspInit 1 */
@@ -516,6 +600,12 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
/* USART3 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
/* USART3 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspDeInit 1 */
/* USER CODE END USART3_MspDeInit 1 */
@@ -534,6 +624,12 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
/* USART6 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
/* USART6 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART6_IRQn);
/* USER CODE BEGIN USART6_MspDeInit 1 */
/* USER CODE END USART6_MspDeInit 1 */

View File

@@ -0,0 +1,48 @@
// File: STM32F405_415_407_417_427_437_429_439.dbgconf
// Version: 1.0.0
// Note: refer to STM32F405/415 STM32F407/417 STM32F427/437 STM32F429/439 reference manual (RM0090)
// refer to STM32F40x STM32F41x datasheets
// refer to STM32F42x STM32F43x datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <o.2> DBG_STANDBY <i> Debug Standby Mode
// <o.1> DBG_STOP <i> Debug Stop Mode
// <o.0> DBG_SLEEP <i> Debug Sleep Mode
// </h>
DbgMCU_CR = 0x00000007;
// <h> Debug MCU APB1 freeze register (DBGMCU_APB1_FZ)
// <i> Reserved bits must be kept at reset value
// <o.26> DBG_CAN2_STOP <i> CAN2 stopped when core is halted
// <o.25> DBG_CAN1_STOP <i> CAN2 stopped when core is halted
// <o.23> DBG_I2C3_SMBUS_TIMEOUT <i> I2C3 SMBUS timeout mode stopped when core is halted
// <o.22> DBG_I2C2_SMBUS_TIMEOUT <i> I2C2 SMBUS timeout mode stopped when core is halted
// <o.21> DBG_I2C1_SMBUS_TIMEOUT <i> I2C1 SMBUS timeout mode stopped when core is halted
// <o.12> DBG_IWDG_STOP <i> Independent watchdog stopped when core is halted
// <o.11> DBG_WWDG_STOP <i> Window watchdog stopped when core is halted
// <o.10> DBG_RTC_STOP <i> RTC stopped when core is halted
// <o.8> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.7> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.6> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.5> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.4> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.3> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.2> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.1> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.0> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// </h>
DbgMCU_APB1_Fz = 0x00000000;
// <h> Debug MCU APB2 freeze register (DBGMCU_APB2_FZ)
// <i> Reserved bits must be kept at reset value
// <o.18> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.17> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.16> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.1> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.0> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// </h>
DbgMCU_APB2_Fz = 0x00000000;
// <<< end of configuration section >>>

Some files were not shown because too many files have changed in this diff Show More