LL公共资源
在GR551x的LL驱动中,各个外设模块使用的公共枚举、结构体、宏定义在gr55xx.h中,主要如下:
- 标志位状态/中断状态:用于表示相应的标志位或中断标志位是否置1,定义如下:
typedef enum { RESET = 0, SET = !RESET } flag_status, it_status; - 功能状态:用于表示相应的功能是否启用,其定义如下:
typedef enum { DISABLE = 0, ENABLE = !DISABLE } functional_state; - 公共宏:主要为寄存器相关的宏,可用于实现寄存器的直接读写及按位读写,定义如下:
#define SET_BIT(REG, BIT) ((REG) |= (BIT)) #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) #define READ_BIT(REG, BIT) ((REG) & (BIT)) #define CLEAR_REG(REG) ((REG) = (0x0)) #define WRITE_REG(REG, VAL) ((REG) = (VAL)) #define READ_REG(REG) ((REG)) #define MODIFY_REG(REG,CLEARMASK,SETMASK) WRITE_REG((REG),(((READ_REG(REG))&(~(CLEARMASK)))|(SETMASK))) #define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))