update
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
|||||||
#include "app_com.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
@@ -32,6 +32,7 @@ extern "C" {
|
|||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
#include "sys.h"
|
#include "sys.h"
|
||||||
|
#include "usr_config.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Exported types ------------------------------------------------------------*/
|
/* Exported types ------------------------------------------------------------*/
|
||||||
@@ -69,10 +70,12 @@ void Error_Handler(void);
|
|||||||
#define RS485_3_EN_GPIO_Port GPIOB
|
#define RS485_3_EN_GPIO_Port GPIOB
|
||||||
#define RS485_4_EN_Pin GPIO_PIN_7
|
#define RS485_4_EN_Pin GPIO_PIN_7
|
||||||
#define RS485_4_EN_GPIO_Port GPIOE
|
#define RS485_4_EN_GPIO_Port GPIOE
|
||||||
#define JK2_Pin GPIO_PIN_9
|
#define RELAY_1_Pin GPIO_PIN_8
|
||||||
#define JK2_GPIO_Port GPIOE
|
#define RELAY_1_GPIO_Port GPIOE
|
||||||
#define JK3_Pin GPIO_PIN_10
|
#define RELAY_2_Pin GPIO_PIN_9
|
||||||
#define JK3_GPIO_Port GPIOE
|
#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_Pin GPIO_PIN_11
|
||||||
#define W5500_SPI1_CS_GPIO_Port GPIOE
|
#define W5500_SPI1_CS_GPIO_Port GPIOE
|
||||||
#define SPI2_CS_Pin GPIO_PIN_12
|
#define SPI2_CS_Pin GPIO_PIN_12
|
||||||
@@ -85,8 +88,10 @@ void Error_Handler(void);
|
|||||||
#define DS1302_DIO_GPIO_Port GPIOD
|
#define DS1302_DIO_GPIO_Port GPIOD
|
||||||
#define DS1302_RST_Pin GPIO_PIN_5
|
#define DS1302_RST_Pin GPIO_PIN_5
|
||||||
#define DS1302_RST_GPIO_Port GPIOD
|
#define DS1302_RST_GPIO_Port GPIOD
|
||||||
#define JK4_Pin GPIO_PIN_5
|
#define BUZZER_Pin GPIO_PIN_4
|
||||||
#define JK4_GPIO_Port GPIOB
|
#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_Pin GPIO_PIN_8
|
||||||
#define RS485_EN_GPIO_Port GPIOB
|
#define RS485_EN_GPIO_Port GPIOB
|
||||||
|
|
||||||
@@ -55,15 +55,21 @@ void SVC_Handler(void);
|
|||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
void PendSV_Handler(void);
|
||||||
void SysTick_Handler(void);
|
void SysTick_Handler(void);
|
||||||
|
void DMA1_Stream1_IRQHandler(void);
|
||||||
void DMA1_Stream2_IRQHandler(void);
|
void DMA1_Stream2_IRQHandler(void);
|
||||||
|
void DMA1_Stream3_IRQHandler(void);
|
||||||
void DMA1_Stream4_IRQHandler(void);
|
void DMA1_Stream4_IRQHandler(void);
|
||||||
void DMA1_Stream5_IRQHandler(void);
|
void DMA1_Stream5_IRQHandler(void);
|
||||||
void DMA1_Stream6_IRQHandler(void);
|
void DMA1_Stream6_IRQHandler(void);
|
||||||
void USART1_IRQHandler(void);
|
void USART1_IRQHandler(void);
|
||||||
void USART2_IRQHandler(void);
|
void USART2_IRQHandler(void);
|
||||||
|
void USART3_IRQHandler(void);
|
||||||
void UART4_IRQHandler(void);
|
void UART4_IRQHandler(void);
|
||||||
|
void DMA2_Stream1_IRQHandler(void);
|
||||||
void DMA2_Stream2_IRQHandler(void);
|
void DMA2_Stream2_IRQHandler(void);
|
||||||
|
void DMA2_Stream6_IRQHandler(void);
|
||||||
void DMA2_Stream7_IRQHandler(void);
|
void DMA2_Stream7_IRQHandler(void);
|
||||||
|
void USART6_IRQHandler(void);
|
||||||
/* USER CODE BEGIN EFP */
|
/* USER CODE BEGIN EFP */
|
||||||
|
|
||||||
/* USER CODE END EFP */
|
/* USER CODE END EFP */
|
||||||
@@ -44,9 +44,15 @@ void MX_DMA_Init(void)
|
|||||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* 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 */
|
/* DMA1_Stream2_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
|
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 */
|
/* DMA1_Stream4_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
|
||||||
@@ -56,9 +62,15 @@ void MX_DMA_Init(void)
|
|||||||
/* DMA1_Stream6_IRQn interrupt configuration */
|
/* DMA1_Stream6_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
|
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 */
|
/* DMA2_Stream2_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
|
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 */
|
/* DMA2_Stream7_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
|
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
|
||||||
@@ -57,10 +57,11 @@ void MX_GPIO_Init(void)
|
|||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOB, RS485_1_EN_Pin|RS485_2_EN_Pin|RS485_3_EN_Pin|SPI2_CS_Pin
|
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 */
|
/*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 */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
|
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);
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
|
/*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
|
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.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PEPin PEPin */
|
/*Configure GPIO pins : PEPin PEPin PEPin */
|
||||||
GPIO_InitStruct.Pin = RS485_4_EN_Pin|W5500_SPI1_CS_Pin;
|
GPIO_InitStruct.Pin = RS485_4_EN_Pin|RELAY_1_Pin|W5500_SPI1_CS_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PEPin PEPin */
|
/*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.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
@@ -113,11 +114,11 @@ void MX_GPIO_Init(void)
|
|||||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = JK4_Pin;
|
GPIO_InitStruct.Pin = RELAY_4_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(JK4_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(RELAY_4_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,9 +64,15 @@ extern DMA_HandleTypeDef hdma_usart1_rx;
|
|||||||
extern DMA_HandleTypeDef hdma_usart1_tx;
|
extern DMA_HandleTypeDef hdma_usart1_tx;
|
||||||
extern DMA_HandleTypeDef hdma_usart2_rx;
|
extern DMA_HandleTypeDef hdma_usart2_rx;
|
||||||
extern DMA_HandleTypeDef hdma_usart2_tx;
|
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 huart4;
|
||||||
extern UART_HandleTypeDef huart1;
|
extern UART_HandleTypeDef huart1;
|
||||||
extern UART_HandleTypeDef huart2;
|
extern UART_HandleTypeDef huart2;
|
||||||
|
extern UART_HandleTypeDef huart3;
|
||||||
|
extern UART_HandleTypeDef huart6;
|
||||||
/* USER CODE BEGIN EV */
|
/* USER CODE BEGIN EV */
|
||||||
|
|
||||||
/* USER CODE END EV */
|
/* USER CODE END EV */
|
||||||
@@ -197,7 +203,9 @@ void SysTick_Handler(void)
|
|||||||
app_timer.increment_int(1);
|
app_timer.increment_int(1);
|
||||||
com_uart1.rx_time_increment_int(&com_uart1,1);
|
com_uart1.rx_time_increment_int(&com_uart1,1);
|
||||||
com_uart2.rx_time_increment_int(&com_uart2,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_uart4.rx_time_increment_int(&com_uart4,1);
|
||||||
|
com_uart6.rx_time_increment_int(&com_uart6,1);
|
||||||
/* USER CODE END SysTick_IRQn 0 */
|
/* USER CODE END SysTick_IRQn 0 */
|
||||||
HAL_IncTick();
|
HAL_IncTick();
|
||||||
/* USER CODE BEGIN SysTick_IRQn 1 */
|
/* USER CODE BEGIN SysTick_IRQn 1 */
|
||||||
@@ -212,6 +220,20 @@ void SysTick_Handler(void)
|
|||||||
/* please refer to the startup file (startup_stm32f4xx.s). */
|
/* 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.
|
* @brief This function handles DMA1 stream2 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -226,6 +248,20 @@ void DMA1_Stream2_IRQHandler(void)
|
|||||||
/* USER CODE END DMA1_Stream2_IRQn 1 */
|
/* 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.
|
* @brief This function handles DMA1 stream4 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -304,6 +340,20 @@ void USART2_IRQHandler(void)
|
|||||||
/* USER CODE END USART2_IRQn 1 */
|
/* 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.
|
* @brief This function handles UART4 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -322,6 +372,20 @@ void UART4_IRQHandler(void)
|
|||||||
/* USER CODE END UART4_IRQn 1 */
|
/* 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.
|
* @brief This function handles DMA2 stream2 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -336,6 +400,20 @@ void DMA2_Stream2_IRQHandler(void)
|
|||||||
/* USER CODE END DMA2_Stream2_IRQn 1 */
|
/* 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.
|
* @brief This function handles DMA2 stream7 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -350,6 +428,20 @@ void DMA2_Stream7_IRQHandler(void)
|
|||||||
/* USER CODE END DMA2_Stream7_IRQn 1 */
|
/* 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 BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
@@ -35,6 +35,10 @@ DMA_HandleTypeDef hdma_usart1_rx;
|
|||||||
DMA_HandleTypeDef hdma_usart1_tx;
|
DMA_HandleTypeDef hdma_usart1_tx;
|
||||||
DMA_HandleTypeDef hdma_usart2_rx;
|
DMA_HandleTypeDef hdma_usart2_rx;
|
||||||
DMA_HandleTypeDef hdma_usart2_tx;
|
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 */
|
/* UART4 init function */
|
||||||
void MX_UART4_Init(void)
|
void MX_UART4_Init(void)
|
||||||
@@ -397,6 +401,46 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
|||||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
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 BEGIN USART3_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END 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;
|
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
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 BEGIN USART6_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END 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);
|
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 BEGIN USART3_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END 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);
|
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 BEGIN USART6_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END USART6_MspDeInit 1 */
|
/* USER CODE END USART6_MspDeInit 1 */
|
||||||
@@ -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
Reference in New Issue
Block a user