GPIO基本知识——配置为输出
概述:F2806x系列DSP有3个IO端口。A口由GPIO0-GPIO31构成,B口由GPIO32-GPIO58构成。模拟端口由AIO0-AIO15构成。
DSP上的IO数量有限,为了最大化利用其功能,芯片的GPIO管脚通常具有复用功能,可以通过MUX实现对IO功能的选择。除GPIO功能外,F2806x系列DSP的管脚通常具有多达三种的外设信号接口功能。
以下,将按照功能进行叙述,详细说明GPIO的使用方法。
1.GPIO配置为输出
打开F28069核心板原理图,可以看到控制LED的相关电路。其中GPIO31与GPIO34经LVC2G07分别控制两个LED。LVC2G07为双路缓冲器,1Y-1A、2Y-2A保持一致信号。这里使用该缓冲器的原因在于,DSP的IO驱动能力有限,直接驱动LED电流可能出现驱动不足的现象。使用缓冲器可以解决这个问题。1. GPIO功能初始化为了控制LED亮灭,需要将GPIO31与GPIO34设置为GPIO的输出功能,进而控制LED。GPIO31使用A口控制,GPIO34使用B口控制。GPIO功能选择寄存器为MUX寄存器,IO方向控制寄存器为DIR寄存器。需要注意的是,GPIO初始化流程可以放在CPU初始化完成之后,即InitPieVectTable()之后。因此,将GPIO31与GPIO34初始化为GPIO功能,方向为输出的代码可以设置如下。 InitSysCtrl(); DINT;
InitPieCtrl();
IER = 0x0000; IFR = 0x0000;
InitPieVectTable();
EALLOW; GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0; GpioCtrlRegs.GPADIR.bit.GPIO31 = 1; GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; EDIS;
EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>