STM32中使用类“51”中的位bit做标志——节约资源之道

文章介绍了如何在32位系统中使用C语言的位操作宏来模拟51单片机的位标志功能,用于记录LCD屏幕刷新状态和WIFI连接状态。通过位加宏实现变量的设置和清除,达到节省资源的效果。并提供了示例代码展示位操作的使用方法。

背景

1:用习惯了51的位bit,像二进制信号量一样只有0和1两种状态,我认为这两种状态还是利用得最为广泛的两种状态,就比如说WIFI的连接状态 -1已经连接 -0 未连接,控制信号开关 0-关闭 1-开启。而我在LCD屏幕刷新时,需要记录变量是否改变再刷新,做判断的时间总比做刷新的时间短的多!甚至这种简单的判断所消耗的时间可以忽略不及。当然对LCD来说,若是追求快速刷新,流畅的玩家完全可以用LCD+DMA的方式做硬件加速。

2:早些接触时就念念不忘51里的bit,接触32因为其资源丰富我也不也怎么管,变量,全局变量使劲造就完事了。32里最小数据类型为8位。

3:为保持勤俭节约的中华民族的美德,于是就有了本篇文章,以此不忘那曾资源紧张的岁月。

原理

原理实际上很简单,用C中位加宏的方式就能实现。

关键代码

 //从0开始 0-15位
 typedef unsigned short u16;
 u16 flag = 0x0000;  //造个变量做拆分
#define LCD_SET(X) flag|=1<<X  
#define LCD_RESET(X) flag&=~(1<<X)
#define LCD_GetBit(X) (flag
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值