RGB灯驱动芯片P9813驱动程序
Gokit3S的微控制器仍然是STM32F103C8T6。STM32开发环境的建立和工程创建就不做演示了。网络上一大把的教材,需要的同学可以自行去搜索一下。本篇开始对外围设备驱动程序的编写。一切板子从点灯开始 - - ,这里要点亮的是板子上RGB三色灯。其驱动芯片使用的是P9813 。P8913是两线串行通讯,但并不是IIC接口。具体通讯要按照芯片手册上的时序图来编写。P9813的手册也比较简单。我直接贴上他的时序。
驱动的时序图如下图所示:
RGB三色灯的电路原理图如下:
这里先写一个延时程序,让RGB灯每过一秒钟变一次颜色。阻塞式延时比较LOW,浪费CPU时间。这里用定时器做一个非阻塞式延时。其他部分程序比较长的时候延时时间会不准,不过具体场合具体应用。做类似嵌入式系统里的绝对延时的方式也可以。这里写个简单的。
初始化定时器:
设置计时开始函数:
查询计时函数:
清除计时函数:
初始化P9813接口:
P9813驱动程序:
主程序改变颜色:
|