一、GPIO(general purpose input output)框图
1.1 该芯片总共有176个引脚,有88个GPIO。0 ~ 31 为A组,32 ~ 63为B组,64~87为c组。每一组有不同的寄存器控制,控制的机制都一样。
1.2 程序框图如下:(来源于该芯片数据手册的4.13)
1.3 详解:(x=A/B/C)
1.3.1 输出模式
1.GPxDIR寄存器是控制GPIO的输入输出的。当设置为1是,则该GPIO为输出。
2.GPxMUX两位寄存器,设置为00时为普通的GPIO模式;设置为01时为外设1;设置为10时为外设2;设置为11时 为外设3;
3.GPxTOGGLE设置为1时,GPIO为输出翻转电平。GPxCLEAR设置为1时,GPIO输出为低电平。GPxSET设置为1时,GPIO输出为高电平。
4.GPxDAT数据寄存器,一般用来设置多个GPIO的输出电平。
5.复位引脚,复位时GPIO为输入模式。
6.GPxPUD寄存器,设置为0时为上拉输出;设置为1时为下拉输出。
1.3.2 输入模式(GPxDIR寄存器设置为0时)
7.GPxQSEL1/2寄存器设置量化滤波的采样次数;设置为00时同步信号直接输入;设置位01时3采样;设置为10时6采样;设置为11时,异步信号直接输入。GPxCTRL寄存器设置采样周期。
8.GPxDAT数据寄存器只读状态,读取GPIO的输入的数据。
9.设置外部中断。
二、输入模式的量化滤波
(来源于该芯片数据手册6.9.2)
1.通过GPxCTRL的QUALPRD为来设置采样周期。
2.设置采样的次数为6次采样。
3.采样周期为6,因此,即使在此处的电平为高电平,通过滤波之后采集到的输入信号还是为低电平。
4.因此我们可以得到去除干扰后的输入信号。可以应用于按键抖动信号和噪声的干扰的消除等等。