📄 globalvar.h
字号:
#ifndef __GLOBAL_VAR_H
#define __GLOBAL_VAR_H
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "stm32f10x.h"
#ifdef __VAR_DEFINE
#define __GVAR
#else
#define __GVAR extern
#endif
#define NULL 0
#define SYSCLK_FREQ_72MHz 72000000
#define APB1CLK_FREQ_36MHz 36000000
#define LCD_MASTER_PORT GPIOA
#define LCD_MASTER_NSS_PIN GPIO_Pin_4
#define LCD_MASTER_SCK_PIN GPIO_Pin_5
#define LCD_MASTER_MISO_PIN GPIO_Pin_6
#define LCD_MASTER_MOSI_PIN GPIO_Pin_7
#define LCD_MASTER_DMA_IRQn DMA1_Channel3_IRQn
#define LCD_MASTER_DMA_IRQHandler DMA1_Channel3_IRQHandler
#define LCD_MASTER_DMA_IT_TC DMA1_IT_TC3
#define LCD_MASTER_DMA_CHN DMA1_Channel3 // SPI1_TX DMA
#define SIG_GEN_TIMER TIM1
#define SIG_DETECT_TIMER TIM2
#define GLB_FREERUN_TIMER TIM3 // Without interrupt, evryone need to use this, divided in 1us per CNT
#define LCD_BACKLIGHT_PORT GPIOB
#define LCD_BACKLIGHT_PIN GPIO_Pin_9
#define LCD_DC_PORT GPIOA
#define LCD_DC_PIN GPIO_Pin_0
#define LCD_RST_PORT GPIOA
#define LCD_RST_PIN GPIO_Pin_1
#define SIG_RECV_EXTI_LINE EXTI_Line6
#define SIG_GEN_PULSE_SD_PORT GPIOB
#define SIG_GEN_PULSE_SD_PIN GPIO_Pin_15
#define SIG_GEN_PULSE_A_PORT GPIOB
#define SIG_GEN_PULSE_B_PORT GPIOA
#define SIG_GEN_PULSE_A_PIN GPIO_Pin_13
#define SIG_GEN_PULSE_B_PIN GPIO_Pin_8
#define SIG_OUT_SW_PORT GPIOA
#define SIG_OUT_SW_PIN GPIO_Pin_10
#define SIG_RECV_SW_PORT GPIOB
#define SIG_RECV_SW_PIN GPIO_Pin_5
#define UART2_TX_PORT GPIOA
#define UART2_TX_PIN GPIO_Pin_2
#define UART2_RX_PORT GPIOA
#define UART2_RX_PIN GPIO_Pin_3
#define LSB_MASK 0x01
#define HEAP_BASE_SCT 0x20003000 // According to .sct file
#define HMI_WIDTH_PIX 84
#define HMI_HEIGHT_PIX 48
#define HMI_ROW_WIDTH 8
typedef enum {FALSE = 0, TRUE = !FALSE} Boolean;
#define __IS_IN_HEAP(x) (((uint32_t)(x) >= HEAP_BASE_SCT) ? TRUE : FALSE)
typedef enum {WORKING = 0, FINISHED = !WORKING} WorkingStatus;
typedef enum {HMI_COLOR_WHITE = 0, HMI_COLOR_BLACK = !HMI_COLOR_WHITE} HMIDrawColor;
typedef enum {IMAGE_SHIFT_LEFT = 0, IMAGE_SHIFT_RIGHT = !IMAGE_SHIFT_LEFT} ImageShiftDirect;
typedef enum {
ENUM_HMI_NULL = 0,
ENUM_HMI_CMD_STREAM,
ENUM_HMI_DRAW_POINT_DATA,
ENUM_HMI_DRAW_LINE_DATA,
ENUM_HMI_DRAW_RECT_DATA,
ENUM_HMI_DRAW_CHAR_DATA,
ENUM_HMI_DRAW_STRING_DATA,
ENUM_HMI_DRAW_PIC_DATA,
ENUM_HMI_DRAW_IMAGE_SHIFT_DATA,
ENUM_HMI_NO_BUS_TASK,
ENUM_BL_BLINK = ENUM_HMI_NO_BUS_TASK,
ENUM_HMI_FUNC_CNT
}HMIFunctionArray;
typedef enum {
HMI_TASK_TYPE_NULL = 0,
HMI_TASK_TYPE_BUS,
HMI_TASK_TYPE_NO_BUS,
HMI_TASK_TYPE_COUNT
} TYPE_HMI_TASK_TYPE;
#define IS_NO_BUS_TASK(x) ((x) >= ENUM_HMI_NO_BUS_TASK)
typedef struct
{
uint8_t *DataList;
uint8_t DataLen;
} struct_HMI_CMD_Para;
typedef struct
{
uint8_t pointX;
uint8_t pointY;
HMIDrawColor color;
} struct_HMI_Draw_Para_Point;
typedef struct
{
uint8_t startX;
uint8_t startY;
uint8_t endX;
uint8_t endY;
HMIDrawColor color;
} struct_HMI_Draw_Para_Line;
typedef struct
{
uint8_t startX;
uint8_t startY;
uint8_t endX;
uint8_t endY;
HMIDrawColor color;
} struct_HMI_Draw_Para_Rect;
typedef struct
{
uint8_t startX;
uint8_t startY;
char *ASCIIChar;
HMIDrawColor color;
} struct_HMI_Draw_Para_Char;
typedef struct
{
uint8_t startX;
uint8_t startY;
char *ASCIIString;
HMIDrawColor color;
} struct_HMI_Draw_Para_String;
typedef struct
{
uint8_t picID;
uint8_t startX;
uint8_t startY;
uint8_t width;
uint8_t height;
} struct_HMI_Draw_Para_Pic;
typedef struct
{
uint8_t startX;
uint8_t startY;
uint8_t endX;
uint8_t endY;
ImageShiftDirect direction;
} struct_HMI_Draw_Para_Image_Shift;
typedef struct
{
uint16_t Interval;
uint8_t Number;
} struct_HMI_BL_Test;
typedef struct
{
HMIFunctionArray HMI_Function_Index;
void *HMI_Func_Para;
} struct_HMI_Queue;
__GVAR uint32_t gSystem_1ms_CNT;
//__GVAR uint8_t *CMDList;
//Used to find the BB start address of a 32bits variable
#define BITBAND_ADDRESS(x) (((x) & 0xF0000000) + 0x02000000 + (((x) & 0xFFFFF) << 5))
//Used to find the bit's BB address of a 32bits variable given address
#define BITBAND(address,bit) (*((volatile uint32_t*)(BITBAND_ADDRESS((uint32_t)(address)) + ((bit) << 2))))
//Used to find the bit's BB address of a 32bits variable given variable
#define BITBAND_V(variable,bit) (*((volatile uint32_t*)(BITBAND_ADDRESS((uint32_t)(&(variable))) + ((bit) << 2))))
__GVAR uint32_t Flag_Global_General_G01;
#define FLAG_HEAP_STATUS BITBAND_V(Flag_Global_General_G01, 0)
__GVAR uint32_t Flag_SIG_General_G01;
#define FLAG_SIG_START_CONFIG BITBAND_V(Flag_SIG_General_G01, 0)
#define FLAG_SIG_CRITICAL_TIM BITBAND_V(Flag_SIG_General_G01, 1)
#define FLAG_SIG_START_TX BITBAND_V(Flag_SIG_General_G01, 2)
#define FLAG_SIG_TX_FINISHED BITBAND_V(Flag_SIG_General_G01, 3)
#define FLAG_SIG_CONTACT_RELAY BITBAND_V(Flag_SIG_General_G01, 4)
#define FLAG_SIG_RELAY_CONTACTED BITBAND_V(Flag_SIG_General_G01, 5)
#define FLAG_SIG_RECV_TIME_REACH BITBAND_V(Flag_SIG_General_G01, 6)
#define FLAG_SIG_SUCC_RECVEIVED BITBAND_V(Flag_SIG_General_G01, 7)
#define FLAG_SIG_NEW_DATA_INCOME BITBAND_V(Flag_SIG_General_G01, 8)
#define FLAG_SIG_FISH_DETECT_RISING BITBAND_V(Flag_SIG_General_G01, 9)
#define FLAG_SIG_FISH_DETECTED BITBAND_V(Flag_SIG_General_G01, 10)
__GVAR uint32_t Flag_HMI_General_G01;
#define FLAG_HMI_PWRON_RESET BITBAND_V(Flag_HMI_General_G01, 0)
#define FLAG_HMI_QUEUE_STATUS BITBAND_V(Flag_HMI_General_G01, 1)
#define FLAG_LCD_MASTER_DMA_TRANSMITTING BITBAND_V(Flag_HMI_General_G01, 2)
#define FLAG_HMI_DEPTH_CURVE_REDRAW BITBAND_V(Flag_HMI_General_G01, 3)
__GVAR uint32_t Flag_Global_Error;
#define FLAG_HEAP_FULL BITBAND_V(Flag_Global_Error, 0)
#define FLAG_HMI_QUEUE_FULL BITBAND_V(Flag_Global_Error, 1)
#ifdef DEBUG
#define UART_DEBUG_DMA_CHN DMA1_Channel7
#define UART_DEBUG_DMA_IT_TC DMA1_IT_TC7
#define UART_DEBUG_DMA_IRQn DMA1_Channel7_IRQn
#define UART_DEBUG_DMA_IRQHandler DMA1_Channel7_IRQHandler
#define MAX_UART_DEBUG_LEN 128
__GVAR uint32_t Flag_COM_General_G01;
#define FLAG_UART_DEBUG_DMA_TRANSMITTING BITBAND_V(Flag_COM_General_G01, 0)
__GVAR void UART2_Debug_Print(char *printString);
__GVAR char COM_Print_Buffer[MAX_UART_DEBUG_LEN];
#endif
__GVAR void Occupy_Delay(uint32_t delayMs);
extern void memor(void *dest, const void *src, uint32_t size);
extern struct_HMI_Queue *HMI_Find_Queue_Slot(TYPE_HMI_TASK_TYPE taskType);
//extern WorkingStatus HMI_CMD_Stream(void *HMI_CMD_Para);
//extern WorkingStatus HMI_CMD_Exten(void *HMI_CMD_Para);
extern ErrorStatus HMI_Draw_Point(uint8_t pointX, uint8_t pointY, HMIDrawColor color);
extern ErrorStatus HMI_Draw_Line(uint8_t startX, uint8_t startY, uint8_t endX, uint8_t endY, HMIDrawColor color);
extern ErrorStatus HMI_Draw_Rect(uint8_t startX, uint8_t startY, uint8_t endX, uint8_t endY, HMIDrawColor color);
extern ErrorStatus HMI_Draw_Char(uint8_t startX, uint8_t startY, char ASCIIChar, HMIDrawColor color);
extern ErrorStatus HMI_Draw_String(uint8_t startX, uint8_t startY, char *ASCIIString, HMIDrawColor color);
extern ErrorStatus HMI_Draw_Pic(uint8_t picID, uint8_t startX, uint8_t startY, uint8_t width, uint8_t height);
extern ErrorStatus HMI_Draw_Image_Shift(uint8_t startX, uint8_t startY, uint8_t endX, uint8_t endY, ImageShiftDirect direction);
//extern WorkingStatus HMI_BL_Blink(void *HMI_Draw_Para);
extern WorkingStatus (*HMI_Function_Array[ENUM_HMI_FUNC_CNT])();
extern ErrorStatus newBLBlink(uint16_t blinkInterval, uint16_t blinkNumber);
extern ErrorStatus HMI_Set_Color_Type(char *const_HMI_Color_Type_CMD);
__GVAR EXTI_InitTypeDef gEXTI_InitStructure;
#define GET_GLOBAL_FREERUN_US TIM_GetCounter(GLB_FREERUN_TIMER)
#define LCD_BACKLIGHT_OFF GPIO_SetBits(LCD_BACKLIGHT_PORT, LCD_BACKLIGHT_PIN)
#define LCD_BACKLIGHT_ON GPIO_ResetBits(LCD_BACKLIGHT_PORT, LCD_BACKLIGHT_PIN)
#define MOSFET_DRIVER_ON GPIO_SetBits(SIG_GEN_PULSE_SD_PORT, SIG_GEN_PULSE_SD_PIN)
#define MOSFET_DRIVER_OFF GPIO_ResetBits(SIG_GEN_PULSE_SD_PORT, SIG_GEN_PULSE_SD_PIN)
#define OUTPUT_RELAY_CONTACT GPIO_SetBits(SIG_OUT_SW_PORT, SIG_OUT_SW_PIN)
#define OUTPUT_RELAY_RELEASE GPIO_ResetBits(SIG_OUT_SW_PORT, SIG_OUT_SW_PIN)
#define RECV_RELAY_CONTACT GPIO_SetBits(SIG_RECV_SW_PORT, SIG_RECV_SW_PIN)
#define RECV_RELAY_RELEASE GPIO_ResetBits(SIG_RECV_SW_PORT, SIG_RECV_SW_PIN)
#define OPEN_LOW_MOSFET_A GPIO_ResetBits(SIG_GEN_PULSE_A_PORT, SIG_GEN_PULSE_A_PIN)
#define OPEN_LOW_MOSFET_B GPIO_ResetBits(SIG_GEN_PULSE_B_PORT, SIG_GEN_PULSE_B_PIN)
#define ENABLE_SIG_EXTI gEXTI_InitStructure.EXTI_LineCmd = ENABLE; \
EXTI_Init(&gEXTI_InitStructure)
#define DISABLE_SIG_EXTI gEXTI_InitStructure.EXTI_LineCmd = DISABLE; \
EXTI_Init(&gEXTI_InitStructure)
#ifndef DEBUG
#define SET_UART2_TX_PIN GPIO_SetBits(UART2_TX_PORT, UART2_TX_PIN)
#define RESET_UART2_TX_PIN GPIO_ResetBits(UART2_TX_PORT, UART2_TX_PIN)
#define SET_UART2_RX_PIN GPIO_SetBits(UART2_RX_PORT, UART2_RX_PIN)
#define RESET_UART2_RX_PIN GPIO_ResetBits(UART2_RX_PORT, UART2_RX_PIN)
#endif
//#ifdef TESTPIN_ENABLE
// #define TEST_PIN_1 GPIO_Pin_6
// #define TEST_PIN_2 GPIO_Pin_5
// #define TEST_PIN_3 GPIO_Pin_7
// #define TESTPIN_PORT_B GPIOB
// #define TEST_PIN_1_LOW GPIO_ResetBits(TESTPIN_PORT_B, TEST_PIN_1)
// #define TEST_PIN_2_LOW GPIO_ResetBits(TESTPIN_PORT_B, TEST_PIN_2)
// #define TEST_PIN_3_LOW GPIO_ResetBits(TESTPIN_PORT_B, TEST_PIN_3)
// #define TEST_PIN_1_HIGH GPIO_SetBits(TESTPIN_PORT_B, TEST_PIN_1)
// #define TEST_PIN_2_HIGH GPIO_SetBits(TESTPIN_PORT_B, TEST_PIN_2)
// #define TEST_PIN_3_HIGH GPIO_SetBits(TESTPIN_PORT_B, TEST_PIN_3)
//#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -