自己的开发套件为没有LPC2468核心板的新包装,一直以为也没有什么不同的。可是万万没有想到自己的开发套件的实际版本会与原理图上所述不同。
原理图上所述的SA56004的I2C器件地址火0x92,可是实际测试的是0x96。其实,这个也没有什么的,关键是我使用的是寄存器方式操作I2C接口。本来说不熟悉的芯片,这回这个调试可费了半天的劲……历尽千辛万苦终于是调出来了。
程序架构分了两层,底层bspI2C文件,用于操作寄存器的硬件接口函数,其内容与架构在上一个帖子里面已经表述,这次再次封装了bspSA56004文件,以实现中间件的功能,用于应用层调用的接口,即实现了getLocalTemper()函数与getRemoteTemperature()两个函数接口。
这里要说明的是,由于采用中断的方式,所以在发送读温度指令后,要查询当前 i2c总线的状态,当总线状态更新为complete后,才去i2cRecvBuf[]里面读取对应的温度值,而不是发送指令后就立即读取。
最后,奉上温度数据的回读值日志
我在测量的某个时刻用手指按了一会儿芯片,亲爱的网友们你们知道是什么时刻吗?
TO BE CONTINUED.