請問一下各位大大, BQ32002的晶振没起来 ,是不是因为我没配置好所以他才没起振呢?那么BQ32002的驱动在哪里可以找到呢?
answer:
http://www.ti.com.cn/product/cn/BQ32000/toolssoftware
可以在此链接下载驱动程序
Ying Chen59:
回复 answer:
非常非常感谢您呢!已经下载完毕,并且集成进代码,以下是我的初始化代码:
int bq32k_probe( void ){ uint8_t reg; int error; struct rtc_time tm; i2cUtilsInitParams_t i2cUtilsParams = I2CUTILSINITPARAMS_DEFAULT; I2CUtilsInit(RTC_I2C_INST, &i2cUtilsParams);
CONSOLEUtilsPrintf("bq32k_probe…\n");
/* Check Oscillator Stop flag */ error = bq32k_read(BQ32K_SECONDS, 1, ®);
CONSOLEUtilsPrintf("BQ32K_SECONDS = 0x%X. error = %d\n" , reg, error);
if (!error && (reg & BQ32K_STOP)) { CONSOLEUtilsPrintf("Oscillator was halted. Restarting…\n"); reg &= ~BQ32K_STOP; error = bq32k_write(BQ32K_SECONDS, 1, ®); } if (error) return error;
/* Check Oscillator Failure flag */ error = bq32k_read(BQ32K_MINUTES, 1, ®);
CONSOLEUtilsPrintf("BQ32K_MINUTES = 0x%X. error = %d\n" , reg, error);
if (!error && (reg & BQ32K_OF)) { CONSOLEUtilsPrintf("Oscillator Failure. Check RTC battery.\n"); reg &= ~BQ32K_OF; error = bq32k_write(BQ32K_MINUTES, 1, ®); } if (error) return error;
/* Important timearrw[0]=0x5e; timearrw[1]=0xc7; timearrw[2]=0x01; bq32k_write(0x20, 3, timearrw);*/
return 0;}
现在的问题是,晶振可以了,但是:
1. 为什么下电之后时间还是会回到之前的值呢,是0H:30M:24S。而且您看我配置函数里面,我都没有配置过。这是什么原因?
2. 如果要时间继续走,那么还需配置哪些寄存器,具体要写什么值进去呢?
请您帮忙回答一下好吗?谢谢您
TI中文支持网


