STM32学习笔记——位带操作(GPIO端口输入/输出)

STM32学习笔记——位带操作(GPIO端口输入/输出)

位带操作公式

(addr&0xF0000000)+0x02000000+((addr&0x00FFFFFF)<<5)+(n<<2)

addr:要操作的位所在的寄存器
n:要操作的位号

代码表示

#define GPIOB_ODR_Addr	(GPIOB_BASE + 0x0C)
#define PBout(n)		*(unsigned int*)((GPIOB_ODR_Addr&0xF0000000)+0x02000000+((GPIOB_ODR_Addr&0x00FFFFFF)<<5)+(n<<2))

PBout(5) = 0;	//设定GPIOB引脚5位为0
PBout(8) = 1;	//设定GPIOB引脚8位为1

猜你喜欢

转载自blog.csdn.net/weixin_46185572/article/details/107251439