本期我们来遵循其他单片机的学习路线开始去做一位点灯大师—点亮一个LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看上一节的文档,看看开发板原理图到底是哪个LED跟哪个IO连在一起。
一、硬件电路
根据之前官方提供的assembly drawing资料我们能看到实际的LED的位置,一共有四个
LED,那么我们再来检查一下原理图里的这些灯到底是怎么连接的。
DS1很明显没有连接任何IO,所以它是不可控的,就是电源指示灯,只要数据线连接到PC,DS1就会被点亮。DS2和DS则分别被CH552_TX0和ISP_TX两个IO端口控制。
而LED1从命名来看就是自成一派,从原理图分析来看,这是一个RGB的三色灯,原理图写的已经非常详细了,里面核心是三个灯封装在一个器件里,分别被LED_R, LED_G, LED_B三个IO控制。
通过检查K210本身的IO我们看到,LED_R, LED_G, LED_B分别连接到CPU的IO_13, IO_12和IO_14,那么我们可以学习相关的IO编程方法来控制LED灯的亮灭了。
K210比较强大的功能是可以通过内部映射让外部引脚实现不同的功能,我们要学习如何让指定的IO干它能干的事。那么我们就需要学习实现这种映射关系的方法。这个与一般的单片机的学习稍有不同。
二、GPIO的配置
那么我们如何来理解K210的这种引脚映射的[内部功能]呢?K210 芯片上的 外部引脚 和 内部功能 是彼此独立的,引脚是指从芯片上引出的许多金属触点,也就是我们俗称的功能引脚,它可以是 GPIO / PWM / ADC / I2C 等内部功能引脚,传统的认知是引脚对应的内部功能是不可改变的,但可以复用的,而 K210 是可以通过映射来改变引脚功能的,看如下示意图理解具体的映射功能。
首先可以将 I2C 的 SCL/SDA 映射(MAP)到 IO6/IO7 引脚,从而在此引脚上进行 I2C 的读写操作。
+------------------------------+
| |
| +---+ |
<-----+ <-----+ |I2C| |
IO6| +---+ |
| | |
| |