我有一个中断时钟频率为100kHz,因此需要尽可能高效(例如最小时钟)。
所以我改变了对库的调用,将写入定向到内存映射寄存器。 这基本上只会删除在库中检查参数是否正确的操作。
有一件事让我困惑。 在GPIOPinWrite中,我们有:
HWREG(ui32Port + (GPIO_O_DATA + (ui8Pins << 2))) = ui8Val;
但在hw_types.h中,HWREG的定义为:
#define HWREG(x) \
(*((volatile uint32_t *)(x)))
这不是说它是指向UINT32_t的指针,那么为什么GPIOPinWrite将uint8_t放入内存地址? 那么应该使用HWREGB -还是我误解了代码?


