请问gd32w51x单片机支不支持位带操作

[复制链接]
2603|5
czx-china 发表于 2025-8-30 17:19 | 显示全部楼层 |阅读模式
//IO口操作宏定义
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr))
#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum))

#define output_offset 0x14
#define input_offset  0x10

#define GPIOA_ODR_Addr    (GPIOA+output_offset)

#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)  //输出
#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  //输入

PAout(0)=1;这样操作好像不行了,请指导!
classroom 发表于 2025-10-27 16:36 | 显示全部楼层
不支持吧
classroom 发表于 2025-10-27 16:37 | 显示全部楼层
用标准寄存器操作
cr315 发表于 2025-10-27 17:37 | 显示全部楼层
GD32W51x不支持传统位带,要改用寄存器直接操作或模拟位带。
duo点 发表于 2025-10-27 19:38 | 显示全部楼层
推荐用标准寄存器宏,代码清晰且可移植。
szt1993 发表于 2025-10-31 23:31 | 显示全部楼层
不支持位带操作??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0