你好!我用的芯片是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位?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好!我用的芯片是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位?
这就是所谓的bit banding操作。通过一步写操作可以直接修改按位修改,而不改变其他位的值。
详细操作方法见Datasheet中GPIO章节Data Register Operation的内容。