嵌入式入门的第一个程序就是跑马灯,当时学的时候也觉得挺简单的,反正就是控制电平的高低来控制灯的亮和灭,但是这其实并没有那么简单,接下来我就以向一个初学者教授的步骤讲解如何写出一个跑马灯程序。
我们一般都是使用开发板编程,开发板都配套有大量的资料,例如原理图啊,数据手册啊,还有参考手册,既然要写流水灯,那首先板子上得有LED灯吧(其实没有也不要紧,我们可以外接)。
我的开发板是正点原子精英版(STM32F103ZET6),我们首先打开开发板的原理图,找到LED灯的原理图(如果是外接的LED灯 也要查看原理图),我的原理图如下:
通过观察原理图我们可以得到的信息有 :
- 一共有两个LED灯,DS0 和DS1
- 两个LED灯分别和LED0 和 LED1引脚相连。(重要)
- 这两个灯只有在电平为 0 时才亮(这一点很重要)
第一个信息和第二个信息很容易得到,主要是第三个可能有人不知道怎么得到的,一个LED灯就是一个发光二极管,当这个二极管导通的时候就会发光,二极管的电路符号就是一边是竖杠,另一边是三角形,三角形顶角与竖杠连接,二极管的特性不用多解释,大家肯定都会,他是单向导通的,所以只有当LED0的电压为低时二极管才会发光。
接下来我们再去整体的原理图中查找LED0 和 LED1对应的引脚是什么。
由上面可以知道LED0和PB5相连接,而LED1和PE5相连接。
所以我们就知道了控制PB5输出低电平就能使DS0亮,控制PE5输出低电平就能使DS1亮,我们就只需要在代码中使能并初始化引脚就行了,这样也确实能够达到我们想要的效果。
引脚就行了,这样也确实能够达到我们想要的效果。