Files
school_stm32_lab/libs/ge_interface/ge_interface.h
ZZY 52097a36ee feat(school_stm32): 添加基础的 STM32F103RCT6 项目结构
- 创建了项目的基本目录结构和文件
- 添加了 CMakeLists.txt 和 Makefile 构建配置
- 创建了 main.c 文件,实现了简单的 LED 闪烁和按键检测功能
- 集成了 SEGGER RTT 库
- 添加了 .gitignore 文件,排除了不必要的生成文件
2025-06-27 23:09:57 +08:00

56 lines
1.7 KiB
C

#ifndef __GE_INTERFACE_H__
#define __GE_INTERFACE_H__
#include "include/ge_input.h"
#include "include/ge_render.h"
#include "include/ge_resource.h"
#include "include/ge_timer.h"
#include <pynic_log/pynic_log.h>
extern ge_input_t ge_input;
extern ge_render_t ge_render;
extern ge_resource_t ge_resource;
extern ge_timer_t ge_timer;
enum {
GE_ITYPE_NONE,
GE_ITYPE_KEY_1,
GE_ITYPE_KEY_2,
GE_ITYPE_KEY_3,
GE_ITYPE_KEY_4,
GE_ITYPE_KEY_L1H1,
GE_ITYPE_KEY_L1H2,
GE_ITYPE_KEY_L1H3,
GE_ITYPE_KEY_L1H4,
GE_ITYPE_KEY_L2H1,
GE_ITYPE_KEY_L2H2,
GE_ITYPE_KEY_L2H3,
GE_ITYPE_KEY_L2H4,
GE_ITYPE_KEY_L3H1,
GE_ITYPE_KEY_L3H2,
GE_ITYPE_KEY_L3H3,
GE_ITYPE_KEY_L3H4,
GE_ITYPE_KEY_L4H1,
GE_ITYPE_KEY_L4H2,
GE_ITYPE_KEY_L4H3,
GE_ITYPE_KEY_L4H4,
};
#define GE_FAST_SET_ON(name) (name##_GPIO_Port->BSRR = name##_Pin)
#define GE_FAST_SET_OFF(name) (name##_GPIO_Port->BRR = name##_Pin)
// #define GE_FAST_SET_OFF(name) (name##_GPIO_Port->BSRR = (uint32_t)name##_Pin << 16u;)
#define GE_SET_STATE(name, state) HAL_GPIO_WritePin(name##_GPIO_Port, name##_Pin, state)
#define GE_SET_ON(name) GE_SET_STATE(name, GPIO_PIN_SET)
#define GE_SET_OFF(name) GE_SET_STATE(name, GPIO_PIN_RESET)
#define GE_LED_SET(num, state) HAL_GPIO_WritePin(LED_##num##_GPIO_Port, LED_##num##_Pin, state);
#define GE_LED_TOGGLE(num) HAL_GPIO_TogglePin(LED_##num##_GPIO_Port, LED_##num##_Pin);
#define GE_LED_ON(num) GE_LED_SET(num, GPIO_PIN_SET)
#define GE_LED_OFF(num) GE_LED_SET(num, GPIO_PIN_RESET)
#define GE_IS_BIN_PRESSD(num) (HAL_GPIO_ReadPin(KEY_##num##_GPIO_Port, KEY_##num##_Pin) == GPIO_PIN_RESET)
void input_btn_func(ge_input_t* ctx);
#endif // __GE_INTERFACE_H__