最近又看了一下LPC1114的数据寄存器的内容。数据寄存器允许从被设置为输入的引脚上读取数据,往被设置输出的引脚写值。每个端口数据寄存器占用地址空间的0-0X3FFC,地址位13:2用于屏蔽。如图1:
原先一直对这个数据屏蔽作用搞不太懂,现在又回头研究一下,豁然开朗啊……数据寄存器的偏移量可以从0到0X3FFC的任意位置,这个意思相当于每个GPIO口都有一个4K容量,每次对GPIO口操作时,你可以选择一个GPIO口的地址,然后对数据寄存器操作,然而改变的数据寄存器不是每一位都要改变的,这得看你选择的14位GPIO口地址对每个端口的12个GPIO引脚的屏蔽情况。(GPIO端口i位相关的地址位被设置为高,GPIODATA寄存器i的值将更新,如果地址位设置为低,那么相关的端口位将不更新)如图2、 3、 4
这样就可以选择一个适当的GPIO端口地址,(屏蔽不需要操作的位,而仅仅对某些位操作)仅仅对GPIO口的某个端口进行置位而不影响其他端口。
个人看法,多多指教哦……