前言
最近使用CCS811这一款集成环境参数测量芯片,由于CCS811本身的原因,导致调试颇为不顺利。现在已经调试出来,把自己的经验分享给大家。主控芯片stm32f103。
问题一:无法正常读取硬件id及状态
这个问题有可能是:
1.进行了某些误操作,导致CCS811芯片本身跑飞,所以怎么复位都不能读取。解决办法是对芯片复位,即INT脚接地
2.IIC通讯本身有问题,讲IIC通讯的读和写里的延迟加大,至少5us
问题二:从boot模式转换到测量模式失败
当上面的参数能读取出来的时候,其实通讯本身已经没有问题,但是由于CCS811内部集成的MCU需要一定的时间转换模式,即当我们发送测量转换指令后,必须等待至少180us时间,才能够对ccs811进行读写操作,假如提前读写便导致CCS811跑飞。
解决办法,当发送转换指令时必须等待180us,代码如下
//测量数据前必须开启
void app_Start(void)
{
nWAKE=0;
delay_us(50);
IIC_Start();
IIC_Send_Byte(WRIT); //发送写命令
if(IIC_Wait_Ack()){
IIC_Stop();retur