czx-china 发表于 2025-8-30 17:19

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

//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_offset0x10

#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

不支持位带操作??
页: [1]
查看完整版本: 请问gd32w51x单片机支不支持位带操作