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

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

本帖最后由 tyw 于 2025-8-30 20:15 编辑

//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;这样操作好像不行了,请指导!









                     tyw 注



czx-china 发表于 2025-9-9 17:00

不行,按照以前的方法读取就跳入Hard Fault Handler中断
页: [1]
查看完整版本: 请问gd32w51x单片机支不支持位带操作