STM32 里的 BITBAND 的 宏 公式 不明白啊,help!
时间:10-02
整理:3721RD
点击:
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr & 0xFFFFF)<<5)+(bitnum<<2))
((addr & 0xF0000000)+0x2000000+((addr & 0xFFFFF)<<5)+(bitnum<<2))后面这个公式到底是怎么回事?哪位大神可以帮解读下。
((addr & 0xF0000000)+0x2000000+((addr & 0xFFFFF)<<5)+(bitnum<<2))后面这个公式到底是怎么回事?哪位大神可以帮解读下。
(1)STM32对bit-band的访问,是以32位的方式来访问,即一次读写32位(Bit),4个字节(STM32是32位的CPU,一次读32位长,速度快,存储空间比51大的多)。 (2)寄存器中的1个位,是使用bit-band中1个双字(32位)来表达的。
(1)STM32对bit-band的访问,是以32位的方式来访问,即一次读写32位(Bit),4个字节(STM32是32位的CPU,一次读32位长,速度快,存储空间比51大的多)。 (2)寄存器中的1个位,是使用bit-band中1个双字(32位)来表达的
我不明白它这个是怎么计算到对应的位上的,这个公式能一步一步举例说清楚吗?例如我要定义a1.5