GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); 这个使能是同时使能还是先1再2再3,如果1、2、3顺序换了是不是还是从左到右。
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);这个写是不是也是从左到右写,是全部写1,如果是GPIO_PIN_1|0x0|GPIO_PIN_3,是不是写的1、0、1。
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_2|GPIO_PIN_3,0xFF);0xFF=1111 1111,是不是也是有先后顺序,是不是从左到右,是不是0、1、2、3被写1111,我如果0、1、2、3顺序换了是不是还是从左到右写。
iVal = GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 |GPIO_PIN_3 | GPIO_PIN_4);iVal是int型,如果0、1、2、3、4、都是1那么iVal是不是31。
还有就是这个或运算的机制是什么,加吗,还是对应不同的函数作用不同,例如GPIOPinTypeGPIOOutput,GPIOPinWrite和ADCSequenceStepConfigure中的最后一个参数的配置。
HG:
建议你看看语法规则,这与器件功能无关。
xyz549040622:
那些或运算,你可以看成一个整体,不用纠结先后顺序。再说按照语法逻辑,肯定是先进行或运算,再进行其他运算的。
jia liu4:
回复 HG:
能不能距离解释一下,恕在下愚钝,麻烦了。
jia liu4:
回复 HG:
能不能解释一下,恕在下愚钝,麻烦了。
jia liu4:
回复 xyz549040622:
嗯嗯!思考了一番,恍然大悟,不过还是有点小问题,就是,每个外设的地址是不变的,也就是说或起来如果是对应GPIO就是好方便赋值或是别的,而对应于配置什么函数,比如设置系统时钟,就是几个或起来的,是不是像调模块那样,给那个值就执行什么功能,因为或起来是一个值然后传递过去,从而给予相应的答复。请问是不是这样理解,不防加个Q。
QQ:2454008481
xyz549040622:
回复 jia liu4:
我们最终的目的是给mcu的寄存器赋值,你上面所说的一切,都是最表层的操作,目的是为了让我们以最能看懂的方式赋值。经过各种包装起来的运算后,最终生成一个值赋值给寄存器,仅此而已。