#ifndef __CONFIGMACROS_H #define __CONFIGMACROS_H #include "oled.h" #include "key.h" #include "interface.h" /** * @breaf 简化函数单体 */ #define open16 11 //开字 #define close16 12 //关字 #define resetDevAddr ((uint32_t)0x8075000) #define TIM_Start(htim) HAL_TIM_Base_Start_IT(htim) #define LED_TOGGLE(pin) HAL_GPIO_TogglePin(GPIOC, (pin)) //运行灯 #define UART_PRINT(huart) HAL_UART_Transmit(huart, (uint8_t *)&ch, 1, 0xFFFF); #define PRINT_MENU_STATUS(key) printf("--->%s pressed\t%d %d %d %d\n", key, menu.current, menu.up, menu.next, menu.enter) #define HELLO(message) printf("%s\r\n", message) /** * @breaf 简化函数多体 */ #define OLED_DISPLAY(color, display) do { \ OLED_Init(); \ OLED_ColorTurn(color); \ OLED_DisplayTurn(display); \ } while(0) #define SET_MENU_STATUS(current_value, up_value, next_value, enter_value) \ do { \ menu.current = current_value; \ menu.up = up_value; \ menu.next = next_value; \ menu.enter = enter_value; \ refresh = true;\ } while(0) #define TOGGLE_WDI_PIN(htim_instance) \ do { \ if ((htim_instance)->Instance == TIM2) { \ HAL_GPIO_TogglePin(WDI_GPIO_Port, WDI_Pin); \ } \ } while(0) #define UPDATE_EXECUTE_REFRESH() \ do { \ updatekeystate(); \ execute_interface(menu); \ OLED_Refresh(); \ } while(0) #define IDLE_DMA_UART(huart) do {\ __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); \ HAL_UART_Receive_DMA(huart, recvBuff, 2048); \ } while(0) #define RXNE_UART(huart) __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE) #define RESET_BT_MODULE() \ if(resetBTmodule) { \ MBA32A_Init(); \ } /** * @breaf 定义测试开关 */ #define Test_old 1 //前期测试 #define keyDebuginfo 1 /** * @breaf 结构体定义 */ typedef struct { uint8_t current; //当前状态索引号 uint8_t up; //向下一个 uint8_t next; //向下一个 uint8_t enter; //确定 unsigned char* sn; //sn uint32_t home; } Menu_table; struct keys { unsigned char judge_sta; //判断按键按键按下的动作到了第几步 bool key_sta; //如果按键被按下,为0 bool key_flag; //如果确认被按下,为1 }; typedef struct { uint32_t serialNum; //4字节流水号 uint32_t userId; //4字节userid uint32_t Ntime; //4字节时间 uint8_t Autoseal; //1字节自动施封 } Bt_frame; #endif /*__CONFIGMACROS_H*/