上次是用IO口模拟IIC总线来测试的,这几天又有空了,来试试IIC总线的库函数方式来驱动试试,先采用查询方式,下次再采用中断方式。
IIC的具体介绍和各种状态的转变什么的手册上都说的很清楚,要想了解工作过程,手册至少要好好读一遍的,这里就不多说了,直接看看库。关于IIC的库有两个文件,i2c_11u6x.c和i2cm_11u6x.c,前一个文件是各种IIC工作方式的库函数都有(主机从机什么的),后面一个文件是作为主机时的库函数。我们是作为主机方式操作的,所以采用后一个库函数文件,这样比较简单点。
具体的IIC程序部分,首先要进行IIC的IO口初始化为IIC功能,我使用的是IIC0
IIC主模式初始化,设置总线速率
IIC数据的发送和接收,直接调用一个函数就可以了,结构体要设置好,具体的发送接收操作都是库函数自动来完成,具体如何工作的可以看下库文件。
BH1790GLC脉搏传感器的初始化,我为了看下读写的对不对,每一条都做了显示处理来看下结果
主函数,定时0.5S读一次数据并刷新显示
实际显示的效果,可以看到手机按不按上去数据有明显的区别
|