如何配置GPIO的引脚,位,但是不影响其他位的使用。
清0
GPFCON &= ~(GPF4_msk | GPF5_msk | GPF6_msk);
先把相关的位 置1 然后取反 变成0,再&寄存器值,这样就可以清位。
11 << 0000 0000 <==> 0011 0000 0000
取反 <==> 1100 1111 1111
再&寄存器原来置 <==> XXXX XXXX XXXX 这就是清0.
<==> XX00 XXXX XXXX 你看原来的值被清0,其他值被保留。
置1
GPFCON |= GPF4_out | GPF5_out | GPF6_out;
先置1,再取反
#define GPF4_msk (3<<(4*2)) 先把引脚4及时bit9 8 设置成11,然后后面就可以清成00
#define GPF5_msk (3<<(5*2))
#define GPF6_msk (3<<(6*2))
#define GPF4_out (1<<(4*2)) 把引脚4及bit8,设置成1,1 0000 0000
#define GPF5_out (1<<(5*2))
#define GPF6_out (1<<(6*2))
GPFCON &= ~(GPF4_msk | GPF5_msk | GPF6_msk);
GPFCON |= GPF4_out | GPF5_out | GPF6_out;
本文介绍了一种配置GPIO引脚的方法,通过清零和置位操作,能够精确地控制指定的GPIO位,同时不会影响到其他位的状态。具体实现包括定义掩码、使用按位与和按位或运算来实现位的修改。
9857

被折叠的 条评论
为什么被折叠?



