今天学习了对IO口的操作方法,于是实际写了个程序点亮LED灯。
操作通用IO口主要设置三个方面:1、是否复用。 2、方向。 3、赋值。
前面两个方面放在初始化时,后一个方面是写在用户自定义程序里。
GPIO的控制寄存器和数据寄存器主要有以下几个:
在通用GPIO操作中主要对控制寄存器的GPXMUX和GPXDIR设置,GPXMUX用来定义是否复用,1为复用,0为普通IO;GPXDIR用来定义方向,1为输出,0为输入。而在赋值时则对数据寄存器进行配置。
值得注意的是: GPXDAT不适合用来对位连续操作,比如要给GPIO65、GPIO66同时输出低电平,不要把两条赋值语句连着写,因为GPXDAT的写数据速度慢,容易影响其他管脚的操作。所以要置0或者置1的话建议用CLEAR和SET来配置寄存器,这几个寄存器操作速度快,不影响其他管脚(包括TOGGLE的取反操作)。
实例如下所示,目的是为了实现2个灯的同亮同熄,图1里实际只实现了1个灯的闪烁,另一个灯受GPXDAT赋值速度的影响一直处于常亮状态; 图2是修改后的程序,实现了对2个灯的操作。