?? hmi.h
字號:
#ifndef __HMI_H
#define __HMI_H
#include "GlobalVAR.h"
#define LCD_MASTER_SPI SPI1
#define LCD_MASTER_DMA RCC_AHBPeriph_DMA1
#define LCD_MASTER_TX_DR_ADD 0x4000300C
#define HMI_RESET_TIME 200 // ms
#define HMI_QUEUE_LEN 32 // There can be 16 task waiting in the HMI to do list Queue
#define HMI_QUEUE_SYS_LEN 4 // There can be 8 task for system use like heap full, error...
#define HMI_NO_BUS_QUEUE_LEN 4
#define HMI_ROW_NUM (HMI_HEIGHT_PIX / HMI_ROW_WIDTH)
#define HMI_COL_NUM HMI_WIDTH_PIX
#define MAX_DISPLAY_BUF (HMI_ROW_NUM * HMI_COL_NUM)
#define HMI_LOCATE_CMD_STREAM_SIZE 2
#define X_COORDINATE_MASK 0x80
#define Y_COORDINATE_MASK 0x40
#define MAX_BL_TEST_BLINK_INTER 200 // 200ms
#define MAX_BL_TEST_BLINK_NUM 7
#define FILL_DEPTH_CURVE_GBUF 0xFF
#define MAX_MAX_DEPTH_IN_CM_DIGIT_NUM 5
#include "HMIPic.h"
typedef enum {
HMI_STATE_IDLE = 0,
HMI_STATE_CONFIG,
HMI_STATE_RESETING,
HMI_STATE_INITIAL,
HMI_STATE_EXE_QUEUE,
HMI_STATE_COUNT
} TYPE_HMI_STATE;
// The functions end WO "ex" is first write to STM32 internal RAM then flush to LCD, they will ONLY return "FINISHIED"
// The ones end with "ex" is used to directly write to LCD, they may return "WORKING", indicating work hasn't done yet
WorkingStatus HMI_CMD_Stream(void *HMI_CMD_Para);
WorkingStatus HMI_Draw_Point_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_Line_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_Rect_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_Char_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_String_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_Pic_Data(void *HMI_Draw_Para);
WorkingStatus HMI_Draw_Image_Shift_Data(void *HMI_Draw_Para);
WorkingStatus HMI_BL_Blink(void *HMI_Draw_Para);
WorkingStatus (*HMI_Function_Array[ENUM_HMI_FUNC_CNT])() = {NULL, HMI_CMD_Stream,
HMI_Draw_Point_Data,
HMI_Draw_Line_Data,
HMI_Draw_Rect_Data,
HMI_Draw_Char_Data,
HMI_Draw_String_Data,
HMI_Draw_Pic_Data,
HMI_Draw_Image_Shift_Data,
HMI_BL_Blink};
const uint8_t const_HMI_Display_Blank[] = {0x08, 0x0C};
const uint8_t const_HMI_Startup_Config[] = {0x21, 0xC2, 0x04, 0x13, 0x20, 0x0C};
const char const_HMI_PositiveColor_CMD[] = {0x0C, 0x00}; // Add 0x00 to use strlen, to make HMI_Set_Negative_Color and
const char const_HMI_NegativeColor_CMD[] = {0x0D, 0x00}; // HMI_Set_Positive_Color to one routine HMI_Set_Color_Type
static uint8_t HMI_BL_Test_Stage;
static struct_HMI_Queue gHMI_Queue[HMI_QUEUE_LEN + HMI_QUEUE_SYS_LEN];
static struct_HMI_Queue gHMI_Queue_NoBus[HMI_NO_BUS_QUEUE_LEN];
static TYPE_HMI_STATE sta_HMI_StateMachine = HMI_STATE_IDLE;
static uint8_t sta_QueueIndex = 0; // Used by execute queue slot and also find queue slot which will use SPI
static uint8_t sta_QueueIndex_NoBus = 0; // Used by execute queue slot and also find queue slot which will NOT use SPI
static uint8_t sta_LCD_Graphic_BUF[HMI_ROW_NUM][HMI_COL_NUM];
static DMA_InitTypeDef sta_LCD_MASTER_DMA_InitStructure; // Because the DMA TX's length can be adjusted according to
// need to send's buffer length, used static can avoid reassignment
extern uint16_t receivedRawData[];
extern uint16_t *pReceivedRawData;
extern uint8_t receivedProcessedData[];
//extern uint8_t *pReceivedProcessedData;
extern uint16_t gMaxDepthInCM;
extern uint16_t gMinDepthInCM;
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -