更新:DEVICE<---HART--->SIG<---485--->PC,HART透传功能完成
This commit is contained in:
parent
daf63a4503
commit
96575c2dc9
|
@ -116,19 +116,19 @@ typedef enum
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
OPENNING_ANIME = 0, //播放开机动画
|
OPENNING_ANIME = 0, //播放开机动画
|
||||||
MAIN_FUNCTION, //主要功能:输入&输出、曲线显示等
|
MAIN_FUNCTION, //主要功能:输入&输出、曲线显示等
|
||||||
SET_ITEM_CHOOSE, //设置菜单:选项卡选择
|
SET_ITEM_CHOOSE, //设置菜单:选项卡选择
|
||||||
SET_CONTENT_CHOOSE, //设置菜单:内容选择
|
SET_CONTENT_CHOOSE, //设置菜单:内容选择
|
||||||
SET_CONTENT_MODIFY, //设置菜单:内容修改
|
SET_CONTENT_MODIFY, //设置菜单:内容修改
|
||||||
SET_SHOW_LOG //设置菜单:查看记录
|
SET_SHOW_LOG //设置菜单:查看记录
|
||||||
}OPERATIONS;
|
}OPERATIONS;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
TRANS_NONE = 0,
|
TRANS_NONE = 0, //无通讯
|
||||||
TRANS_HART,
|
TRANS_HART, //HART透传
|
||||||
TRANS_BLUETOOTH,
|
TRANS_BLUETOOTH, //蓝牙透传
|
||||||
TRANS_MODBUS
|
TRANS_MODBUS //MODBUS
|
||||||
}SIG_TRANSMISSION;
|
}SIG_TRANSMISSION;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -163,8 +163,13 @@ extern SIG_TRANSMISSION sig_trans; //通讯模式
|
||||||
|
|
||||||
//绝对值计算
|
//绝对值计算
|
||||||
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
||||||
#define LVGL_BREATHE_INTERVAL 5
|
|
||||||
#define BLE_TASK_PERIOD 100
|
#define LVGL_TASK_PERIOD 5 //LVGL任务周期
|
||||||
|
#define MENU_TASK_PERIOD 500 //显示内容设置周期
|
||||||
|
#define BLE_TASK_PERIOD 10 //蓝牙任务周期
|
||||||
|
#define HART_TASK_PERIOD 5 //HART任务周期
|
||||||
|
#define RS485_TASK_PERIOD 5 //485任务周期
|
||||||
|
#define MUX_TASK_PERIOD 50 //多通道输入输出任务周期
|
||||||
|
|
||||||
//屏幕显示
|
//屏幕显示
|
||||||
void screen_run(void);
|
void screen_run(void);
|
||||||
|
|
|
@ -1148,33 +1148,32 @@ void up2down_update(int16_t low, int16_t up)
|
||||||
void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type)
|
void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type)
|
||||||
{
|
{
|
||||||
//为保障安全,切换工作模式后:功能关闭,输入输出值清零
|
//为保障安全,切换工作模式后:功能关闭,输入输出值清零
|
||||||
//{
|
//功能关闭
|
||||||
//功能关闭
|
m5data.io_on2off = IO_OFF;
|
||||||
m5data.io_on2off = IO_OFF;
|
io_on2off_status(); //更新ON/OFF/IN/OUT状态指示
|
||||||
io_on2off_status(); //更新ON/OFF/IN/OUT状态指示
|
|
||||||
|
|
||||||
|
|
||||||
//数码管输入显示置零
|
//数码管输入显示置零
|
||||||
set_nixie_cube(IO_INPUT, 99, 0);
|
set_nixie_cube(IO_INPUT, 99, 0);
|
||||||
|
|
||||||
//数码管输出值置零
|
//数码管输出值置零
|
||||||
set_output(0);
|
set_output(0);
|
||||||
|
|
||||||
//当前输出清零
|
//当前输出清零
|
||||||
sig_sv_update();
|
sig_sv_update();
|
||||||
|
|
||||||
//游标恢复至小数点前1位,个位
|
//游标恢复至小数点前1位,个位
|
||||||
m5data.io_cursor = 3;
|
m5data.io_cursor = 3;
|
||||||
m5data.io_cursor_prv = 3;
|
m5data.io_cursor_prv = 3;
|
||||||
set_cursor_position();
|
set_cursor_position();
|
||||||
|
|
||||||
#if NIXIE_CUBE_ENABLE
|
#if NIXIE_CUBE_ENABLE
|
||||||
//闪烁参数清零
|
//闪烁参数清零
|
||||||
m5data.twk_flag = 0; //闪烁中止
|
m5data.twk_flag = 0; //闪烁中止
|
||||||
m5data.twk_cnt = 0; //闪烁计数清零
|
m5data.twk_cnt = 0; //闪烁计数清零
|
||||||
m5data.twk_flip = 0; //0显示,1不显示
|
m5data.twk_flip = 0; //0显示,1不显示
|
||||||
#endif
|
#endif
|
||||||
//}
|
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -830,7 +830,10 @@ float32 my_power(int a, int b)
|
||||||
//初始化打包
|
//初始化打包
|
||||||
void my_inits_gather(void)
|
void my_inits_gather(void)
|
||||||
{
|
{
|
||||||
//HAL_UART_Receive_IT(&huart6, scom6_ble.rx_buff, 255);
|
SIG24130_Init();
|
||||||
|
|
||||||
|
//HART复位关闭
|
||||||
|
HART_RESET(GPIO_PIN_SET);
|
||||||
|
|
||||||
//eeprom
|
//eeprom
|
||||||
eeprom_spi_init();
|
eeprom_spi_init();
|
||||||
|
|
|
@ -419,11 +419,10 @@ void key_functions_main(void)
|
||||||
#if NIXIE_CUBE_ENABLE
|
#if NIXIE_CUBE_ENABLE
|
||||||
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
|
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
#endif
|
|
||||||
|
|
||||||
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
||||||
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
||||||
|
#endif
|
||||||
m5data.io_cursor_prv = m5data.io_cursor;
|
m5data.io_cursor_prv = m5data.io_cursor;
|
||||||
m5data.io_cursor = (m5data.io_cursor <= 0)?(6):(m5data.io_cursor - 1);
|
m5data.io_cursor = (m5data.io_cursor <= 0)?(6):(m5data.io_cursor - 1);
|
||||||
set_cursor_position();
|
set_cursor_position();
|
||||||
|
@ -462,11 +461,10 @@ void key_functions_main(void)
|
||||||
#if NIXIE_CUBE_ENABLE
|
#if NIXIE_CUBE_ENABLE
|
||||||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
#endif
|
|
||||||
|
|
||||||
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
||||||
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
||||||
|
#endif
|
||||||
m5data.io_cursor_prv = m5data.io_cursor;
|
m5data.io_cursor_prv = m5data.io_cursor;
|
||||||
m5data.io_cursor = (m5data.io_cursor >= 6)?(0):(m5data.io_cursor + 1);
|
m5data.io_cursor = (m5data.io_cursor >= 6)?(0):(m5data.io_cursor + 1);
|
||||||
set_cursor_position();
|
set_cursor_position();
|
||||||
|
|
|
@ -121,14 +121,22 @@ static void fun_pwr12_ctrl(uint8_t ch)
|
||||||
|
|
||||||
uint8_t pulse = 50;
|
uint8_t pulse = 50;
|
||||||
float32 fre_set = 0;
|
float32 fre_set = 0;
|
||||||
|
float32 sv_prv = 0;
|
||||||
|
CHANNEL ch_prv = CHX_IN_MAX;
|
||||||
void mux_signal_switch(st_mux_signal *mux_signal)
|
void mux_signal_switch(st_mux_signal *mux_signal)
|
||||||
{
|
{
|
||||||
CHANNEL ch;
|
CHANNEL ch;
|
||||||
|
|
||||||
ch = mux_signal->channel;
|
ch = mux_signal->channel;
|
||||||
|
|
||||||
|
//通道和设定值均未发生改变时,直接返回
|
||||||
|
if( ( ch_prv == ch )&&( sv_prv == mux_signal->data_sv ) ) return;
|
||||||
|
|
||||||
|
ch_prv = ch;
|
||||||
|
sv_prv = mux_signal->data_sv;
|
||||||
|
|
||||||
fun_pwr12_ctrl(ch);
|
fun_pwr12_ctrl(ch);
|
||||||
HC138_SEL_CH(ch);
|
HC138_SEL_CH(ch);
|
||||||
|
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
case CH0_OUT_VOL_V:
|
case CH0_OUT_VOL_V:
|
||||||
|
@ -183,9 +191,6 @@ void mux_signal_switch(st_mux_signal *mux_signal)
|
||||||
ads1220_operation(CH11_IN_TC, &mux_signal->data_pv);
|
ads1220_operation(CH11_IN_TC, &mux_signal->data_pv);
|
||||||
// fun_rn7302_operate(CH3_IN_RTD, &mux_signal->data_pv);
|
// fun_rn7302_operate(CH3_IN_RTD, &mux_signal->data_pv);
|
||||||
break;
|
break;
|
||||||
case CH12_IN_HART:
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -57,6 +57,8 @@ extern "C" {
|
||||||
|
|
||||||
#define HART_OCD() HAL_GPIO_ReadPin(HART_OCD_GPIO_Port, HART_OCD_Pin)
|
#define HART_OCD() HAL_GPIO_ReadPin(HART_OCD_GPIO_Port, HART_OCD_Pin)
|
||||||
|
|
||||||
|
#define HART_RESET(STATE) HAL_GPIO_WritePin(HART_RST_GPIO_Port, HART_RST_Pin, STATE)
|
||||||
|
|
||||||
#define HART_RTS(SEND) HAL_GPIO_WritePin(HART_RTS_GPIO_Port, HART_RTS_Pin, SEND)
|
#define HART_RTS(SEND) HAL_GPIO_WritePin(HART_RTS_GPIO_Port, HART_RTS_Pin, SEND)
|
||||||
|
|
||||||
#define HC138_SEL_CH(CH) \
|
#define HC138_SEL_CH(CH) \
|
||||||
|
|
|
@ -190,9 +190,10 @@ void start_task_lcd(void const * argument)
|
||||||
|
|
||||||
lv_timer_handler(); //LVGL刷新任务
|
lv_timer_handler(); //LVGL刷新任务
|
||||||
|
|
||||||
osDelay(LVGL_BREATHE_INTERVAL);
|
|
||||||
system_sts.lvgl_stack_consume = uxTaskGetStackHighWaterMark(NULL);
|
system_sts.lvgl_stack_consume = uxTaskGetStackHighWaterMark(NULL);
|
||||||
system_sts.lvgl_stack_consume = 768 - system_sts.lvgl_stack_consume;
|
system_sts.lvgl_stack_consume = 768 - system_sts.lvgl_stack_consume;
|
||||||
|
|
||||||
|
osDelay(LVGL_TASK_PERIOD);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_task_lcd */
|
/* USER CODE END start_task_lcd */
|
||||||
}
|
}
|
||||||
|
@ -220,8 +221,7 @@ void start_task_hart(void const * argument)
|
||||||
}
|
}
|
||||||
|
|
||||||
//驱动验证,DEVICE <--- HART ---> SIG
|
//驱动验证,DEVICE <--- HART ---> SIG
|
||||||
hart_test++;
|
if(hart_test == 1)
|
||||||
if(hart_test > 100)
|
|
||||||
{
|
{
|
||||||
hart_test = 0;
|
hart_test = 0;
|
||||||
|
|
||||||
|
@ -229,11 +229,11 @@ void start_task_hart(void const * argument)
|
||||||
hart_communicate(&scom1_hart);
|
hart_communicate(&scom1_hart);
|
||||||
}
|
}
|
||||||
|
|
||||||
// sig_trans = TRANS_HART;
|
sig_trans = TRANS_HART;
|
||||||
// transparent_hart(&scom1_hart);
|
transparent_hart(&scom1_hart);
|
||||||
}
|
}
|
||||||
|
|
||||||
osDelay(10);
|
osDelay(HART_TASK_PERIOD);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_task_hart */
|
/* USER CODE END start_task_hart */
|
||||||
}
|
}
|
||||||
|
@ -300,7 +300,7 @@ void start_rs485(void const * argument)
|
||||||
|
|
||||||
transparent_485(&scom2_rs485);
|
transparent_485(&scom2_rs485);
|
||||||
|
|
||||||
osDelay(10);
|
osDelay(RS485_TASK_PERIOD);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_rs485 */
|
/* USER CODE END start_rs485 */
|
||||||
}
|
}
|
||||||
|
@ -317,7 +317,6 @@ lv_mem_monitor_t my_mon;
|
||||||
void start_mux_analog(void const * argument)
|
void start_mux_analog(void const * argument)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN start_mux_analog */
|
/* USER CODE BEGIN start_mux_analog */
|
||||||
SIG24130_Init();
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
@ -326,11 +325,8 @@ void start_mux_analog(void const * argument)
|
||||||
|
|
||||||
//输出&输入通道切换
|
//输出&输入通道切换
|
||||||
mux_signal_switch(&mux_signal);
|
mux_signal_switch(&mux_signal);
|
||||||
|
|
||||||
osDelay(50);
|
|
||||||
my_monitor_cnt++;
|
my_monitor_cnt++;
|
||||||
|
|
||||||
//my monitors
|
|
||||||
if(my_monitor_cnt >= 5)
|
if(my_monitor_cnt >= 5)
|
||||||
{
|
{
|
||||||
my_monitor_cnt = 0;
|
my_monitor_cnt = 0;
|
||||||
|
@ -341,7 +337,8 @@ void start_mux_analog(void const * argument)
|
||||||
system_sts.mem_consume = my_mon.used_pct;
|
system_sts.mem_consume = my_mon.used_pct;
|
||||||
system_sts.mem_consume_max = (system_sts.mem_consume_max < system_sts.mem_consume)?(system_sts.mem_consume):(system_sts.mem_consume_max);
|
system_sts.mem_consume_max = (system_sts.mem_consume_max < system_sts.mem_consume)?(system_sts.mem_consume):(system_sts.mem_consume_max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
osDelay(MUX_TASK_PERIOD);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_mux_analog */
|
/* USER CODE END start_mux_analog */
|
||||||
}
|
}
|
||||||
|
@ -363,11 +360,12 @@ void start_menu(void const * argument)
|
||||||
//挂起自身
|
//挂起自身
|
||||||
if( screen_suspend_flag == 1 ) vTaskSuspend(task_menuHandle);
|
if( screen_suspend_flag == 1 ) vTaskSuspend(task_menuHandle);
|
||||||
|
|
||||||
//screen_run();
|
screen_run();
|
||||||
|
|
||||||
osDelay(500);
|
|
||||||
system_sts.menu_stack_consume = uxTaskGetStackHighWaterMark(NULL);
|
system_sts.menu_stack_consume = uxTaskGetStackHighWaterMark(NULL);
|
||||||
system_sts.menu_stack_consume = 512 - system_sts.menu_stack_consume;
|
system_sts.menu_stack_consume = 512 - system_sts.menu_stack_consume;
|
||||||
|
|
||||||
|
osDelay(MENU_TASK_PERIOD);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_menu */
|
/* USER CODE END start_menu */
|
||||||
}
|
}
|
||||||
|
@ -392,7 +390,7 @@ void start_task_monitor(void const * argument)
|
||||||
//vTaskList(task_status);
|
//vTaskList(task_status);
|
||||||
//HAL_UART_Transmit(&huart3, (uint8_t *)task_status, 255, 0xFFFF);
|
//HAL_UART_Transmit(&huart3, (uint8_t *)task_status, 255, 0xFFFF);
|
||||||
|
|
||||||
osDelay(3000);
|
//osDelay(3000);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_task_monitor */
|
/* USER CODE END start_task_monitor */
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,40 +153,7 @@
|
||||||
<Name>-U53FF6B064884525650271587 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 -WK0</Name>
|
<Name>-U53FF6B064884525650271587 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 -WK0</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint>
|
<Breakpoint/>
|
||||||
<Bp>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>224</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134241032</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>../Core/Src/stm32f4xx_it.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\signal_generator\../Core/Src/stm32f4xx_it.c\224</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>1</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>222</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134241022</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>../Core/Src/stm32f4xx_it.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\signal_generator\../Core/Src/stm32f4xx_it.c\222</Expression>
|
|
||||||
</Bp>
|
|
||||||
</Breakpoint>
|
|
||||||
<WatchWindow1>
|
<WatchWindow1>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
|
@ -300,7 +267,7 @@
|
||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>1</periodic>
|
<periodic>1</periodic>
|
||||||
<aLwin>0</aLwin>
|
<aLwin>1</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue