智能车制作

标题: TI芯片RTC时钟BQ32000 [打印本页]

作者: 欲望~控♂    时间: 2014-8-20 11:00
标题: TI芯片RTC时钟BQ32000
有米有大神用过TI的BQ32000小弟正在做rtc时钟,希望给点建议

作者: 竹音清影    时间: 2014-8-20 12:54
不懂
作者: 欲望~控♂    时间: 2014-8-20 22:45
竹音清影 发表于 2014-8-20 12:54
不懂

大神用过ti的BQ32000芯片吗?给个列成读写这个芯片

作者: 竹音清影    时间: 2014-8-20 22:46
欲望~控♂ 发表于 2014-8-20 22:45
大神用过ti的BQ32000芯片吗?给个列成读写这个芯片

首先我不是大神。我没用过这芯片。

作者: 欲望~控♂    时间: 2014-8-22 16:02
竹音清影 发表于 2014-8-20 22:46
首先我不是大神。我没用过这芯片。

好吧,谢谢

作者: 欲望~控♂    时间: 2014-8-25 15:05
  1. //BQ32000д¼Ä´æÆ÷
  2. void BQ3200_WriteRegister(uint32_t I2Cx, unsigned char  RegisterAddress, unsigned char  Data)
  3. {
  4.     //·¢Ë͵ØÖ·
  5.     I2C_GenerateSTART(BQ32000_I2C_PORT);
  6.     I2C_Send7bitAddress(BQ32000_I2C_PORT,BQ32000_IIC_ADDRESS,kI2C_Write);
  7.     I2C_WaitAck(BQ32000_I2C_PORT);
  8.     //·¢ËÍÐèҪдÈëµÄ¼Ä´æÆ÷µØÖ·
  9.     I2C_SendData(BQ32000_I2C_PORT,RegisterAddress);
  10.     I2C_WaitAck(BQ32000_I2C_PORT);
  11.     //·¢ËÍÊý¾Ý
  12.     I2C_SendData(BQ32000_I2C_PORT,Data);
  13.     I2C_WaitAck(BQ32000_I2C_PORT);
  14.     //½áÊø
  15.     I2C_GenerateSTOP(BQ32000_I2C_PORT);
  16.     while(I2C_IsBusy(BQ32000_I2C_PORT) == 0);
  17. }


  18. //BQ32000¶Á¼Ä´æÆ÷
  19. uint8_t BQ32000_ReadRegister(uint32_t I2Cx, uint8_t Addr)
  20. {
  21.     uint8_t result;
  22.     //·¢ËÍ´Ó»úµØÖ·
  23.     I2C_GenerateSTART(I2Cx);
  24.     I2C_Send7bitAddress(I2Cx,BQ32000_IIC_ADDRESS,kI2C_Write);
  25.     I2C_WaitAck(I2Cx);
  26.     //ÐèÒª¶ÁÈ¡µÄ¼Ä´æÆ÷
  27.     I2C_SendData(I2Cx, Addr);
  28.     I2C_WaitAck(I2Cx);
  29.     //ÖØпªÊ¼
  30.     I2C_GenerateRESTART(I2Cx);
  31.     //Ö÷»ú¶Á
  32.     I2C_Send7bitAddress(I2Cx,BQ32000_IIC_ADDRESS,kI2C_Read);
  33.     I2C_WaitAck(I2Cx);
  34.     //ÉèÖÃKinetisΪ½ÓÊÕģʽ
  35.     I2C_SetMasterMode(I2Cx,kI2C_Read);

  36.     result = I2C_ReadData(I2Cx);
  37.                 I2C_GenerateAck(I2Cx);
  38.     I2C_WaitAck(I2Cx);
  39.     //·¢ËÍÍ£Ö¹ÐźÅ
  40.     I2C_GenerateSTOP(I2Cx);
  41.     //¶ÁÈ¡Êý¾Ý
  42.     result = I2C_ReadData(I2Cx);
  43.                 while(I2C_IsBusy(BQ32000_I2C_PORT) == 0);
  44.     return result;
  45. }

  46. //³õʼ»¯BQ32000
  47. void BQ32000_Init(void)
  48. {       
  49.         I2C_QuickInit(I2C0_SCL_PB00_SDA_PB01, 96000);
  50. }


  51. //ÉèÖóõʼʱ¼ä
  52. void Settime(char tyear,char tmonth,char tdayofweek,char tdate,char thour, char tminute, char tseconds)
  53. {
  54.                 secondunits=(tseconds%10);
  55.     secondtens=(tseconds/10);
  56.     mintens=(tminute/10);
  57.     minunits=(tminute%10);
  58.     hourtens=(thour/10);
  59.     hourunits=(thour%10);
  60.     tdayofweek=tdayofweek;
  61.     datetens=(tdate/10);
  62.     dateunits=(tdate%10);
  63.     monthtens=(tmonth/10);
  64.     monthunits=(tmonth%10);
  65.     yeartens=(tyear/10);
  66.     yearunits=(tyear%10);

  67.     timearrW[0]=secondunits+(secondtens<<4);
  68.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x00,timearrW[0]);
  69.        
  70.     timearrW[1]=minunits+(mintens<<4);
  71.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x01,timearrW[1]);
  72.        
  73.     timearrW[2]=hourunits+(hourtens<<4);
  74.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x02,timearrW[2]);
  75.                
  76.     timearrW[3]=tdayofweek;
  77.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x03,timearrW[3]);
  78.                
  79.     timearrW[4]=dateunits+(datetens<<4);
  80.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x04,timearrW[4]);
  81.                
  82.     timearrW[5]=monthunits+(monthtens<<4);
  83.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x05,timearrW[5]);
  84.                
  85.     timearrW[6]=yearunits+(yeartens<<4);
  86.                 BQ3200_WriteRegister(BQ32000_I2C_PORT,0x06,timearrW[6]);
  87.    
  88. }

  89. void Readtime(void)
  90. {
  91.         timearrR[0] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x00);
  92.         timearrR[1] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x01);
  93.         timearrR[2] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x02);
  94.         timearrR[3] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x03);
  95.         timearrR[4] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x04);
  96.         timearrR[5] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x05);
  97.         timearrR[6] = BQ32000_ReadRegister(BQ32000_I2C_PORT,0x06);
  98. }
复制代码
对于BQ32000这样操作对吗?可是没有读出数据,玩过的指点一下呗


作者: 友进芯城    时间: 2014-8-26 14:44
这个我是见过 但是不知道要怎么操作   uicmall
作者: 欲望~控♂    时间: 2014-8-26 17:00
友进芯城 发表于 2014-8-26 14:44
这个我是见过 但是不知道要怎么操作   uicmall

那你手上还有什么资源可以用来参考学习的吗?现在我的晶振好像都没动,不知道该怎么做了

作者: 友进芯城    时间: 2014-8-29 18:04
欲望~控♂ 发表于 2014-8-26 17:00
那你手上还有什么资源可以用来参考学习的吗?现在我的晶振好像都没动,不知道该怎么做了

我查看一下,有就发给你

作者: 欲望~控♂    时间: 2014-8-29 18:39
友进芯城 发表于 2014-8-29 18:04
我查看一下,有就发给你

好的,谢谢呢 1029321980@qq.com







欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2