找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6670|回复: 3
收起左侧

STM32调试时钟芯片SD3078源程序

[复制链接]
ID:578840 发表于 2019-7-8 10:43 | 显示全部楼层 |阅读模式
STM32调试时钟芯片SD3078程序

单片机源程序如下:
  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};        //初始化实时时间
  10. Time_Def Alarm_init={0x30,0x19,0x17,0x00,0x15,0x08,0x18};        //初始化报警时间
  11. Time_Def sysTime;

  12. /***************** 本地函数声明 *******************/
  13. void Delay(u32 nCount);

  14. /**
  15.   * @brief  主函数
  16.   * @param  无  
  17.   * @retval 无
  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--这是一个读写RTC的演示程序-- \r\n");       
  27.        
  28. /***************** I2C总线初始化 *****************/       
  29.         IIC_Init();       
  30.        
  31. /************* 给RTC写入计时的初始时间 ************/               
  32.         RTC_WriteDate(&time_init);
  33.         RTC_ReadDate(&sysTime);
  34.         printf("写入的初始时间为: \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号演示 ****************/       
  41.         I2CReadSerial(RTC_Address,ID_Address,8,data_Buf);
  42.         printf("芯片64bit ID号为:\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. /**************** 充电使能设置演示 *****************/
  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. /**************** 频率中断设置演示 ****************/
  56.         SetFrq(F2Hz);//输出2Hz频率方波
  57. #elif (INT_TYPE == ALARM)
  58. /**************** 报警中断设置演示 ****************/
  59.         Set_Alarm(sec_ALM|min_ALM|hor_ALM, &Alarm_init);//报警使能:时、分、秒
  60. #elif (INT_TYPE == COUNTDOWN)       
  61. /*************** 倒计时中断设置演示 ***************/
  62.         cdInit.IM = 1;                                //设置为周期性中断
  63.         cdInit.d_clk = S_1s;                //倒计时中断源选择1s
  64.         cdInit.init_val = 2;        //倒计时初值设置为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秒延时
  77.         }
  78. }

  79. /**
  80.   * @brief  延时函数
  81.   * @param  nCount
  82.   * @retval 无
  83.   */
  84. void Delay(u32 nCount)         //简单的延时函数
  85. {
  86.         for(; nCount != 0; nCount--);
  87. }
  88. /*********************************************END OF FILE**********************/
复制代码

所有资料51hei提供下载:
RTC_STM32_demo.7z (178.6 KB, 下载次数: 119)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:617497 发表于 2019-10-16 22:48 | 显示全部楼层
非常感谢,有些作用
回复

使用道具 举报

ID:958996 发表于 2021-8-5 12:51 | 显示全部楼层
我日期读出来都是o咋整啊
回复

使用道具 举报

ID:16255 发表于 2022-6-3 23:50 | 显示全部楼层
差评!!!
这不就是官网上的例程吗?我还以为是原创的呢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表