ARM多功能脚配置

来源:互联网 发布:智龙迷城 国服 知乎 编辑:程序博客网 时间:2024/04/28 23:16

多功能脚配置,顾名思义,多功能包括

1,作为输入功能,读功能口的高低电平;

2,作为输出功能,输出高电平或者低电平
3,作为特殊功能口,比如IIC, UART, USB,  SPI等等的功能口

4,作为中断输入口,对输入的电平或者边缘触发中断

多功能脚配置,包括配置多功能脚的功能,上拉,下拉,不带上下拉还是保持,驱动电流,

arm的多功能脚可以配置为gpio功能,功能号为0,可以配置输入或者输出功能由输出使能位决定,为1就是输出,为0就是输入;

也可以配置为特殊功能(比如串口,mmc),功能号为非0,使用前一定要配置,否则状态不确定。

cpu的引脚是一个连接的端子,通过软件配置设置多路选择器选择到GPIO的输入,输出还是特殊功能的控制器。

每个GPIO有一个输入输出控制寄存器和一个配置寄存器。地址都不一样。

设置为GPIO功能,可以选择输入功能或者输出功能。

设置为GPIO的输入功能后,输出使能为0,还可以配置为上拉还是下拉功能,上拉还是下拉的电阻大小选择比如,2MA,4MA,8MA,16MA,都输入输出寄存器的值的bit0

设置为GPIO的输出功能后,输出使能为1,还要操作输入输出寄存器bit1设置输出的电平为高电平还是低电平。另外,有些功能强大的cpu还有单独的寄存器控制GPIO的输出电平;

有些还有输出电平控制寄存器,每一个比特控制一个gpio的电平,写1就是将相应的GPIO输出高电平,写0就是将相应的GPIO输出低电平,可以一次操作多个GPIO。

有些还有输出电平置位寄存器,每一个比特控制一个gpio的电平,写1就是将相应的GPIO输出高电平,写0不影响GPIO电平;

有些还有输出电平清除寄存器,每一个比特控制一个gpio的电平,写1就是将相应的GPIO输出低电平,写0不影响GPIO电平;

 

有些还有输出使能寄存器,每一个比特控制一个gpio的使能位,写1就是将相应的GPIO输出功能使能,写0就是将相应的GPIO输出功能禁止,可以一次操作多个GPIO。

有些还有输出使能置位寄存器,每一个比特控制一个gpio的输出使能位,写1就是将相应的GPIO输出使能位设置为1,写0不影响GPIO输出使能位;

有些还有输出使能清除寄存器,每一个比特控制一个gpio的输出使能位,写1就是将相应的GPIO输出使能位设置为0,写0不影响GPIO输出使能位;

 

要设置为特殊功能口,要查看datasheet,因为一般GPIO的特殊功能有好几种,比如功能0一般是普通GPIO,功能1可能是USB的TX,功能2可能是UART1的RX,功能3可能是I2C的CLK,。。。。。所以要查datasheet的功能表,和原理图的连接,看看这个引脚是什么功能,在引脚的初始化的时候配置为对应的功能。