# 04-扩展引脚

开发板板载扩展引脚功能

* 可用于连接外部设备（温度传感器、湿度传感器等）
* 与其他电路板或模块通信（I2C、SPI、UART等）
* 自定义GPIO功能

具体功能拓展详情查看引脚列表。

引脚列表标注了每个引脚的默认配置（带\*号），同时给出该引脚所对应的可选择配置。

若需修改管脚的默认配置可参考[扩展引脚功能定制](https://tanzhs-private-organization.gitbook.io/kickpi-book/h618/zh/08-jin-jie/kuo-zhan-yin-jiao-gong-neng-ding-zhi)

**K2B扩展引脚**

![image-20250519162943712](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250519162943712.png)

* 带 \* 号或红色字体为默认软件默认配置功能
* UART0\_RX / TX 默认软件为调试串口
* TWI即I2C，TWI1\_SCK / TWI1\_SDA 等同 I2C\_CLK / I2C\_SDA

**K2C扩展引脚**

![image-20250519163013697](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250519163013697.png)

* 带 \* 号或红色字体为默认软件默认配置功能
* UART0\_RX / TX 默认软件为调试串口
* TWI即I2C，TWI1\_SCK / TWI1\_SDA 等同 I2C\_CLK / I2C\_SDA

## GPIO

### WiringKP工具使用

查看系统是否有WiringKP工具

```shell
which gpio
```

![image-20250514102207335](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514102207335.png)

如果没有就从网盘下载拷贝到板卡系统中

工具下载网盘地址路径

h618\_data\3-SoftwareData\GPIO\_tools

将wiringKP.tar.gz在板卡上解压

可执行文件和库文件分别放到/usr/bin和/usr/lib目录下

**使用演示**

以下演示以K2B为例

```shell
gpio readall //获取所有管脚状态
```

![image-20250314150200725](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250314150200725.png)

```shell
gpio read <wPi>        //读管脚电平
gpio mode <wPi> <mode> //设置管脚工作模式 (当前版本支持设置out/int/up/down/pwm 模式)
gpio write <wPi> <val> //设置管脚输出电平

pwm相关命令
gpio pwmr <wPi> <val>    //设置ARR
gpio pwm <wPi> <val>     //设置CCR
gpio pwmc <wPi> <val>    //设置分频系数
gpio pwmTone <wPi> <val> //设置频率
```

**设置PH5为输出模式，输出高电平**

其中PC管脚输出电压为1.8V，PH管脚输出电压为3.3V

```shell
kickpi@kickpi:~$ gpio mode 0 out
kickpi@kickpi:~$ gpio read 0
0
kickpi@kickpi:~$ gpio write 0 1
kickpi@kickpi:~$ gpio read 0
1
kickpi@kickpi:~$
```

可使用万用表测得此时PH5管脚为高电平

**设置PH5为输入模式**

```shell
kickpi@kickpi:~$ gpio mode 0 in
kickpi@kickpi:~$ gpio mode 0 down
kickpi@kickpi:~$ gpio read 0
0
kickpi@kickpi:~$//短接管脚3和管脚4
kickpi@kickpi:~$ gpio read 0
1
kickpi@kickpi:~$
```

**设置PH2为PWM模式**

```shell
root@kickpi:~# gpio mode 3 pwm #默认输出频率23475Hz 占空比50%的方波
```

![image-20250514115200103](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514115200103.png)

**调节占空比**

PWM占空比 = CCR/ARR

CCR范围0\~65535 默认512

ARR范围1\~65536 默认1024

```shell
gpio pwmr 3 2048 //设置ARR为2048 占空比为512/2048=25%
```

![image-20250514115347443](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514115347443.png)

```shell
gpio pwm 3 1024 //设置CCR为1024 占空比为1024/2048=50%
```

![image-20250514115517926](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514115517926.png)

**调节频率**

```shell
gpio mode 3 pwm //默认输出频率为23475Hz
gpio pwmc 3 5   //设置分频系数为5 则输出频率为23475/5=4695Hz，实际频率为4688Hz 误差可忽略
```

![image-20250514115800211](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514115800211.png)

```shell
gpio pwmTone 3 20000 //直接设置频率为20000Hz
```

![image-20250514115920195](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250514115920195.png)

### gpio\_para

是全志的GPIO控制驱动，可实现简单的电平高低控制

系统中目录位于/sys/class/gpio\_sw

控制

```shell
echo 1 > /sys/class/gpio_sw/PC12/data 
echo 0 > /sys/class/gpio_sw/PC12/data 
```

## SPI

```
spidev_test -D /dev/spidev1.0 -C -v -L -p "hello"
```

> MISO、MOSI 进行短接

![image-20250606100627888](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20250606100627888.png)

## 串口

测试工具

使用 USB 转 TTL线

![image-20241231145656021](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/image-20241231145656021.png)

**TTL普通串口**

使用串口工具连接

![66637824ee48c91b31130503a4400149](http://tanzhtanzh.oss-cn-shenzhen.aliyuncs.com/img/66637824ee48c91b31130503a4400149.jpg)

主板设置串口

ttyAS5为串口5 对应管脚PH2 PH3 115200是波特率

```shell
stty -F /dev/ttyAS5 ispeed 115200 ospeed 115200 cs8 
```

向串口发送数据

```shell
echo kickpi > /dev/ttyAS5  
```

接收数据

```shell
cat /dev/ttyAS5 
```
