【电机控制器】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)设置为高阻.

在这里插入图片描述

在这里插入图片描述

五.开漏输出

在这里插入图片描述

在这里插入图片描述

六.参考资料

STC8H1K08-36I-TSSOP20-规格书.PDF

总结

本文仅仅简单介绍了【电机控制器】STC8H1K芯片——GPIO,评论区欢迎讨论。