【电机控制器】STC8H1K芯片——GPIO
@TOC
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一.IO口配置
二.准双向口
1.简介
2.配置P20 P21 P22
P2n_standard(0xf8);
P3n_standard(0xbf);
P5n_standard(0x10);
#define P2n_standard(bitn) P2M1 &= ~(bitn),P2M0 &= ~(bitn)
0xf8 是一个十六进制数,转换为二进制是 11111000。
~(0xf8) 是对 0xf8
进行按位取反操作。按位取反会将二进制数中的每一位都翻转,即 1 变成 0,0 变成 1。因此,~(0xf8) 的结果是00000111(在8位二进制数的情况下,如果 P2M1 是一个更宽的寄存器或变量,则前面会填充更多的 0)。
P2M1 &=~(0xf8) 是将 P2M1 的当前值与 ~(0xf8) 的结果进行按位与操作。按位与操作会逐位比较两个数的对应位,如果两个位都是
1,则结果位是 1;否则,结果位是 0。这个操作实际上是将 P2M1 的高5位清零(假设我们只考虑这8位,实际上可能更多),而保留低3位的值不变。换句话说,它清除了 P2M1
中对应于 0xf8(即 11111000)的位,而保留了其他位。配置P20 P21 P22
3.配置P36
4.配置P54
三.推免输出
1.简介
2.配置P10,11,12,13,14,15
P1n_push_pull(0x3f);
#define P1n_push_pull(bitn) P1M1 &= ~(bitn),P1M0 |= (bitn)
四.高阻输入
1.简介
2.配置P16,17
P1n_pure_input(0xc0); //设置为高阻输入
P0n_pure_input(0x0f); //设置为高阻输入
3.配置P36
P3n_pure_input(0x40); //CMP-(P3.6)设置为高阻.
五.开漏输出
六.参考资料
总结
本文仅仅简单介绍了【电机控制器】STC8H1K芯片——GPIO,评论区欢迎讨论。