你好!我用的芯片是TM4C123FH6PM,请问:
void
GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
{
ASSERT(_GPIOBaseValid(ui32Port));
HWREG(ui32Port + (GPIO_O_DATA + (ui8Pins << 2))) = ui8Val;
}
的最后一句中问什么要将ui8Pins 左移2位?
xyz549040622:
神马寄存器,地址之类的操作,你找到ui32Port,GPIO_O_DATA ,ui8Pins,加一下看看出现的地址是哪个
Michael Sun:
这就是所谓的bit banding操作。通过一步写操作可以直接修改按位修改,而不改变其他位的值。
详细操作方法见Datasheet中GPIO章节Data Register Operation的内容。