更新:

1、热电偶读数有变化(SPI速率降至648K,寄存器配置回归至原始);
2、按键功能逻辑调整,数据结构调整;
This commit is contained in:
吴俊潮 2025-04-27 17:49:16 +08:00
parent f3964c5257
commit 1f9278fbcc
10 changed files with 13971 additions and 13886 deletions

View File

@ -326,9 +326,6 @@ void my_inits_gather(void);
//按键数据类型转换
void key_char2struct(void);
//按键使能查询
KEYS_STATUS key_valid(KEYS_TAG key_t);
//按键状态配置
void key_config(KEYS_TAG key_t, KEYS_STATUS sts);

View File

@ -135,7 +135,7 @@ void menu_reset(void)
//KEY_MAIN
void key_functions_main(void)
{
if( key_valid(key_pv.tag) == KEY_STATUS_DISABLE ) return;
if( key_pv.status == KEY_STATUS_DISABLE ) return;
uint8_t cursor_temp = 0; //临时游标,替代枚举变量进行加减运算
@ -143,7 +143,8 @@ void key_functions_main(void)
{
case KEY_OUT:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//交替按下 in 和 out 时,只改变输入/输出,连续按同一个键的时候才改变类型
if(m5data.io_mode == IO_INPUT)
@ -212,7 +213,8 @@ void key_functions_main(void)
case KEY_UP:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(m5data.io_mode == IO_INPUT)
{
@ -229,7 +231,8 @@ void key_functions_main(void)
case KEY_MENU:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//加载菜单界面
lv_scr_load(guider_ui.screen_setting);
@ -245,7 +248,8 @@ void key_functions_main(void)
case KEY_IN:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(m5data.io_mode == IO_OUTPUT)
{
@ -316,7 +320,8 @@ void key_functions_main(void)
case KEY_LEFT:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(m5data.io_mode == IO_INPUT)
{
@ -340,7 +345,8 @@ void key_functions_main(void)
case KEY_OK:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//主界面用OK键控制开关ON&OFF
if(m5data.io_on2off == IO_ON)
@ -358,8 +364,8 @@ void key_functions_main(void)
case KEY_RIGHT:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(m5data.io_mode == IO_INPUT)
{
return;
@ -381,7 +387,8 @@ void key_functions_main(void)
case KEY_SWITCH:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
switch (m5data.io_mode) //输入、输出模式切换
{
@ -510,14 +517,15 @@ void key_functions_main(void)
case KEY_SOURCE:
{
//电源开关靠硬件电路实现,此处可做预留
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
}
break;
case KEY_DOWN:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(m5data.io_mode == IO_INPUT)
{
return;
@ -534,13 +542,15 @@ void key_functions_main(void)
case KEY_BACK: //闲置,预留
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
}
break;
case KEY_ALL: //闲置,预留
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
}
break;
@ -551,7 +561,8 @@ void key_functions_main(void)
default:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
}
break;
}
@ -1391,6 +1402,8 @@ void scr_main_recover(void)
key_config(KEY_SOURCE, KEY_STATUS_ENABLE);
key_config(KEY_MENU, KEY_STATUS_ENABLE);
key_config(KEY_SWITCH, KEY_STATUS_ENABLE);
key = 0;
key_char2struct();
}
//颜色更新

View File

@ -115,13 +115,14 @@ void eeprom_item_data_init(void)
//KEY_SETTING
void key_functions_setting(void)
{
if( key_valid(key_pv.tag) == KEY_STATUS_DISABLE ) return;
if( key_pv.status == KEY_STATUS_DISABLE ) return;
switch (key_pv.tag)
{
case KEY_BACK:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//从设置界面返回主界面
if(tabdata.content_cursor == 99)
@ -150,6 +151,20 @@ void key_functions_setting(void)
tabdata.item_page = 1;
tabdata.item_page_prv = 1;
tabdata.content_focus = 0;
//进入选项卡选择状态
key_config(KEY_UP, KEY_STATUS_ENABLE);
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
key_config(KEY_OK, KEY_STATUS_ENABLE);
key_config(KEY_BACK, KEY_STATUS_ENABLE);
key_config(KEY_LEFT, KEY_STATUS_ENABLE);
key_config(KEY_RIGHT, KEY_STATUS_ENABLE);
key_config(KEY_IN, KEY_STATUS_DISABLE);
key_config(KEY_OUT, KEY_STATUS_DISABLE);
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
key_config(KEY_MENU, KEY_STATUS_DISABLE);
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
}
else
{
@ -191,7 +206,7 @@ void key_functions_setting(void)
if( (inner_cursor == INPUT_LOG)||(inner_cursor == OUTPUT_LOG) )
{
setting_items_page(ITEMS_2, 1);
return;
}
set_item2_text(inner_cursor);
@ -207,6 +222,20 @@ void key_functions_setting(void)
default:
break;
}
//进入内容选择状态
key_config(KEY_UP, KEY_STATUS_ENABLE);
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
key_config(KEY_OK, KEY_STATUS_ENABLE);
key_config(KEY_BACK, KEY_STATUS_ENABLE);
key_config(KEY_LEFT, KEY_STATUS_DISABLE);
key_config(KEY_RIGHT, KEY_STATUS_DISABLE);
key_config(KEY_IN, KEY_STATUS_DISABLE);
key_config(KEY_OUT, KEY_STATUS_DISABLE);
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
key_config(KEY_MENU, KEY_STATUS_DISABLE);
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
}
}
}
@ -214,7 +243,8 @@ void key_functions_setting(void)
case KEY_UP:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//内部游标为99时说明未选中任何一个选项卡此时的up和down用于切换选项卡
if(tabdata.content_cursor == 99)
@ -284,7 +314,8 @@ void key_functions_setting(void)
case KEY_DOWN:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
//内部游标为99时说明未选中任何一个选项卡此时的up和down用于切换选项卡
if(tabdata.content_cursor == 99)
@ -352,7 +383,8 @@ void key_functions_setting(void)
case KEY_OK:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if(tabdata.content_cursor == 99)
{
@ -366,9 +398,9 @@ void key_functions_setting(void)
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
key_config(KEY_OK, KEY_STATUS_ENABLE);
key_config(KEY_BACK, KEY_STATUS_ENABLE);
key_config(KEY_LEFT, KEY_STATUS_ENABLE);
key_config(KEY_RIGHT, KEY_STATUS_ENABLE);
key_config(KEY_LEFT, KEY_STATUS_DISABLE);
key_config(KEY_RIGHT, KEY_STATUS_DISABLE);
key_config(KEY_IN, KEY_STATUS_DISABLE);
key_config(KEY_OUT, KEY_STATUS_DISABLE);
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
@ -433,7 +465,8 @@ void key_functions_setting(void)
case KEY_LEFT:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if( tabdata.content_cursor == 99 )
{
@ -490,7 +523,8 @@ void key_functions_setting(void)
case KEY_RIGHT:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
if( tabdata.content_cursor == 99 )
{
@ -550,7 +584,8 @@ void key_functions_setting(void)
default:
{
key_pv.tag = KEY_NONE;
key = 0;
key_char2struct();
}
break;
}
@ -1137,6 +1172,8 @@ void scr_setting_recover(void)
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
key_config(KEY_MENU, KEY_STATUS_DISABLE);
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
key = 0;
key_char2struct();
}
void scr_setting_run(void) //详细设置界面

View File

@ -845,85 +845,98 @@ void my_inits_gather(void)
//按键数据类型转换
void key_char2struct(void)
{
key_pv.value = key;
key_pv.value = (KEYS_VALUE)key;
switch (key_pv.value)
{
case KEY_OUT_VAL:
{
key_pv.tag = KEY_OUT;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_UP_VAL:
{
key_pv.tag = KEY_UP;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_MENU_VAL:
{
key_pv.tag = KEY_MENU;;
key_pv.tag = KEY_MENU;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_IN_VAL:
{
key_pv.tag = KEY_IN;;
key_pv.tag = KEY_IN;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_LEFT_VAL:
{
key_pv.tag = KEY_LEFT;;
key_pv.tag = KEY_LEFT;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_OK_VAL:
{
key_pv.tag = KEY_OK;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_RIGHT_VAL:
{
key_pv.tag = KEY_RIGHT;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_SWITCH_VAL:
{
key_pv.tag = KEY_SWITCH;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_SOURCE_VAL:
{
key_pv.tag = KEY_SOURCE;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_DOWN_VAL:
{
key_pv.tag = KEY_DOWN;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_BACK_VAL:
{
key_pv.tag = KEY_BACK;
key_pv.status = m5data.key_sts[key_pv.tag];
}
break;
case KEY_NONE_VAL:
{
key_pv.tag = KEY_NONE;
key_pv.status = KEY_STATUS_DISABLE;
}
break;
case KEY_ALL_VAL:
{
key_pv.tag = KEY_ALL;
key_pv.status = KEY_STATUS_DISABLE;
}
break;
@ -943,16 +956,11 @@ void key_config(KEYS_TAG key_t, KEYS_STATUS sts)
{
for (uint8_t i = 0; i < 11; i++)
{
m5data.key_status[i] = sts;
m5data.key_sts[i] = sts;
}
}
}
//按键使能查询
KEYS_STATUS key_valid(KEYS_TAG key_t)
{
return m5data.key_sts[key_t];
}

View File

@ -7,6 +7,7 @@
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include "tm1650.h"
#include "apps_gather.h"
uint8_t key = 0;
BOOL kp_flag = FALSE;

View File

@ -46,7 +46,7 @@ void MX_SPI1_Init(void)
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;

View File

@ -300,6 +300,11 @@
<WinNumber>1</WinNumber>
<ItemText>ee_status_test</ItemText>
</Ww>
<Ww>
<count>29</count>
<WinNumber>1</WinNumber>
<ItemText>key_pv,0x0A</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>

File diff suppressed because it is too large Load Diff

View File

@ -563,9 +563,9 @@ SH.GPXTI1.0=GPIO_EXTI1
SH.GPXTI1.ConfNb=1
SH.S_TIM3_CH4.0=TIM3_CH4,Input_Capture4_from_TI4
SH.S_TIM3_CH4.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_32
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
SPI1.CLKPhase=SPI_PHASE_2EDGE
SPI1.CalculateBaudRate=1.296 MBits/s
SPI1.CalculateBaudRate=648.0 KBits/s
SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,CLKPhase,BaudRatePrescaler
SPI1.Mode=SPI_MODE_MASTER