登录注册
论坛
一粒金砂(中级)
8
0
代码如下
voidGPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal){ // // Check the arguments. // ASSERT(GPIOBaseValid(ulPort));
// // Write the pins. // HWREG(ulPort + (GPIO_O_DATA + (ucPins << 2))) = ucVal;}
#define HWREG(x) \ (*((volatile unsigned long *)(x)))
函数调用如下:
GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2,0xff);
不明白的地方:
为什么将第二个参数左移两位在和第一个参数相加?操作的是哪个寄存器?
计算后的地址在手册找不到说明。。。
谁能帮忙指点下。谢谢
扫一扫,分享给好友
五彩晶圆(高级)
1803
发表回复 回帖后跳转到最后一页
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWorld Datasheet 技术支持
查看 »