2021-06-12
作者:互联网
同样一个8位的flag不同的位存储方式
第一种:
定义好一个结构体之后,可以直接对其调试,还可以直接对定义的每一个位进行操作。
这样的优点点是每一个位都是独立开的,且可以相关flag直接设置操作
下面展示一些 内联代码片
。
typedef union{
uint8_t bytes;
struct bit{
uint8_t b_0 :1;
uint8_t b_1 :1;
uint8_t b_2 :1;
uint8_t b_3 :1;
uint8_t b_4 :1;
uint8_t b_5 :1;
uint8_t b_6 :1;
uint8_t b_7 :1;
}bits;
}FLAG_T;
FLAG_T lcd_flag ;
#define LCD_OPEN_FLAG lcd_flag.bits.b_0
#define XXXXXXXXXXXXX lcd_flag.bits.b_1
第二种
通过函数形式设置相应的位 :优势是比较清晰
下面展示一些 内联代码片
。
uint8_t lcd_flag;
#define XXXXXXX 0x01
#define XXXXXXX 0x02
#define XXXXXXX 0x03
#define XXXXXXX 0x04
#define LCD_SET(flag) (lcd_flag |= flag )
#define LCD_CLEAR(flag) (lcd_flag &= ~flag )
#define LCD_GET(flag) (lcd_flag & flag )
两种方式 定义可节省大量的空间
标签:12,06,LCD,uint8,XXXXXXX,flag,lcd,2021,define 来源: https://blog.csdn.net/qq_38780508/article/details/117851357