我们在zstack 中常见到这样的定义
#define HAL_KEY_JOY_MOVE_BIT BV(0)
BV的定义如下:
#ifndef BV
#define BV(n) (1 << (n))
#end
(1 << (n)) 即1左移N位 相当于1乘以2的N 次方; 1 X (2^n)
所以:
/* SW_6 interrupts */
#define HAL_KEY_SW_6_IEN IEN1 /* CPU interrupt mask register */
#define HAL_KEY_SW_6_IENBIT BV(5) /* Mask bit for all of Port_0 */
HAL_KEY_SW_6_IENBIT 0010 0000H
本文解析了ZStack中BV宏的定义与使用方法。详细介绍了BV宏如何通过位操作实现特定位的设置,这对于理解ZStack代码及进行嵌入式开发十分重要。
3320

被折叠的 条评论
为什么被折叠?



