標(biāo)題: STM32調(diào)試時(shí)鐘芯片SD3078源程序 [打印本頁(yè)]

作者: chgach    時(shí)間: 2019-7-8 10:43
標(biāo)題: STM32調(diào)試時(shí)鐘芯片SD3078源程序
STM32調(diào)試時(shí)鐘芯片SD3078程序

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp_usart1.h"
  3. #include "rtc.h"
  4. #include <string.h>

  5. /****************** 本地變量 **********************/
  6. u8        data_Buf[8];
  7. u8        VBAT_Buf[2];
  8. u16        VBAT_VAL;
  9. Time_Def time_init={0x01,0x19,0x17,0x05,0x17,0x06,0x16};        //初始化實(shí)時(shí)時(shí)間
  10. Time_Def Alarm_init={0x30,0x19,0x17,0x00,0x15,0x08,0x18};        //初始化報(bào)警時(shí)間
  11. Time_Def sysTime;

  12. /***************** 本地函數(shù)聲明 *******************/
  13. void Delay(u32 nCount);

  14. /**
  15.   * @brief  主函數(shù)
  16.   * @param  無(wú)  
  17.   * @retval 無(wú)
  18.   */
  19. int main(void)
  20. {       
  21.         u8 i;
  22.         CountDown_Def cdInit;
  23.        
  24. /********* USART1 配置模式為 115200 8-N-1**********/
  25.         USARTx_Config();
  26.         printf("\r\n--這是一個(gè)讀寫(xiě)RTC的演示程序-- \r\n");       
  27.        
  28. /***************** I2C總線初始化 *****************/       
  29.         IIC_Init();       
  30.        
  31. /************* 給RTC寫(xiě)入計(jì)時(shí)的初始時(shí)間 ************/               
  32.         RTC_WriteDate(&time_init);
  33.         RTC_ReadDate(&sysTime);
  34.         printf("寫(xiě)入的初始時(shí)間為: \r\n");
  35.         printf("%02X-%02X-%02X  %02X:%02X:%02X  星期%02X\r\n\r\n", \
  36.         sysTime.year, sysTime.month, sysTime.day, sysTime.hour,\
  37.         sysTime.minute, sysTime.second, sysTime.week);       
  38.         printf("----------------------------\r\n\r\n");       

  39. #ifdef SD30XX_25XX       
  40. /*************** 讀出芯片的ID號(hào)演示 ****************/       
  41.         I2CReadSerial(RTC_Address,ID_Address,8,data_Buf);
  42.         printf("芯片64bit ID號(hào)為:\r\n");
  43.         for (i=0; i<8; i++)
  44.         printf("0x%02X ", data_Buf[i]);
  45.         printf("\r\n----------------------------\r\n\r\n");

  46. /**************** 充電使能設(shè)置演示 *****************/
  47.         data_Buf[0] = Chg_enable;
  48.         I2CWriteSerial(RTC_Address,Chg_MG,1,data_Buf);

  49. /************** 讀出后備電池電壓演示 ***************/       
  50.         I2CReadSerial(RTC_Address,Bat_H8,2,VBAT_Buf);
  51.         VBAT_VAL = (VBAT_Buf[0]>>7)*255 + VBAT_Buf[1];
  52.         printf("VBAT腳的電池電壓為:%d.%d%dV\r\n\r\n", VBAT_VAL/100, VBAT_VAL%100/10, VBAT_VAL%10);
  53. #endif

  54. #if (INT_TYPE == FREQUENCY)
  55. /**************** 頻率中斷設(shè)置演示 ****************/
  56.         SetFrq(F2Hz);//輸出2Hz頻率方波
  57. #elif (INT_TYPE == ALARM)
  58. /**************** 報(bào)警中斷設(shè)置演示 ****************/
  59.         Set_Alarm(sec_ALM|min_ALM|hor_ALM, &Alarm_init);//報(bào)警使能:時(shí)、分、秒
  60. #elif (INT_TYPE == COUNTDOWN)       
  61. /*************** 倒計(jì)時(shí)中斷設(shè)置演示 ***************/
  62.         cdInit.IM = 1;                                //設(shè)置為周期性中斷
  63.         cdInit.d_clk = S_1s;                //倒計(jì)時(shí)中斷源選擇1s
  64.         cdInit.init_val = 2;        //倒計(jì)時(shí)初值設(shè)置為2
  65.         Set_CountDown(&cdInit);
  66. #elif (INT_TYPE == DISABLE)       
  67. /****************** 禁止中斷演示 *****************/
  68.         ClrINT(INTDE|INTAE|INTFE);
  69. #endif

  70.         while( 1 )
  71.         {
  72.                 RTC_ReadDate(&sysTime);
  73.                 printf("%02X-%02X-%02X  %02X:%02X:%02X  星期%02X\r\n", \
  74.                 sysTime.year, sysTime.month, sysTime.day, sysTime.hour,\
  75.                 sysTime.minute, sysTime.second, sysTime.week);

  76.                 Delay(0x7FFFFF);//1秒延時(shí)
  77.         }
  78. }

  79. /**
  80.   * @brief  延時(shí)函數(shù)
  81.   * @param  nCount
  82.   * @retval 無(wú)
  83.   */
  84. void Delay(u32 nCount)         //簡(jiǎn)單的延時(shí)函數(shù)
  85. {
  86.         for(; nCount != 0; nCount--);
  87. }
  88. /*********************************************END OF FILE**********************/
復(fù)制代碼

所有資料51hei提供下載:
RTC_STM32_demo.7z (178.6 KB, 下載次數(shù): 119)


作者: shanlxw    時(shí)間: 2019-10-16 22:48
非常感謝,有些作用
作者: shltoly    時(shí)間: 2021-8-5 12:51
我日期讀出來(lái)都是o咋整啊
作者: mengsiu    時(shí)間: 2022-6-3 23:50
差評(píng)。!
這不就是官網(wǎng)上的例程嗎?我還以為是原創(chuàng)的呢。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1