stm32 iic调试ds1307 rtc时钟

 使用代码

(1条消息) stm32iic调试ds1307rtc时钟,采用iic接口,驱动软件,可以设置,读取ds1307时钟代码资源-CSDN文库

使用STM32调试ds1307,采用iic接口,由于有个项目需要使用外部RTC功能,所以需要选一个RTC模块,最后选择淘宝上搞个模块过来测试一下

模块长相如下

 原理图如下这个模块,从原理图上看,还有一个eeprom,这个也可以通过iic接口来访问,实际项目上暂时未使用,等有空可以调试看看

 DS1307
是美国DALLAS公司推出的I2C总线接口实时时钟芯片,它可独立于 CPU工作,不受CPU主晶振及其电容的影响,且计时准确,月累积误差一般小于10秒。芯片还具有主电源掉电情况下的时钟保护电路,DS1307的时钟靠后备电池维持工作,拒绝CPU对其读出和写入访问。同时还具有备用电源自动切换控制电路,因而可在主电源掉电和其它一些恶劣环境场合中保证系统时钟的定时准确性。DS1307具有产生秒、分、时、日、月、年等功能,且具有闰年自动调整功能。同时,DS1307芯片内部还集成有一定容量、具有掉电保护特性的静态RAM,可用于保存一些关键数据。

 

采用的测试开发板,也是淘宝购买,使用STM32F103RCT6信号,这块MCU也是一款主流MCU使用场景比较多。

 原理图连接

如上图所示

PA10/PA9/GND,使用杜邦线连接TTL转USB模块连接电脑,调试串口使用

5V/GND/PB10/PB,使用杜邦线连接到DS1307模块的P1接口

软件编写

stm32cubemx版本号

使用内部时钟,这里都可以,也可以使用外部时钟

配置调试接sw或者jtag,串口1,PB10/PB11输出模式 

 重定义串口打印函数

/*
 * Retargets the C library printf function to the USART.
 */
int fputc(int ch, FILE *f)
{
	while((USART1->SR&0x40)==0);//等待上一次发送完毕   
	USART1->DR=ch; 		
	return ch;
}

主函数钟读取DS1307数据

	HAL_Delay(1000);
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_8);


	second=Read1307(0x00);
	minute=Read1307(0x01);
	hour=Read1307(0x02);
	week=Read1307(0x03);
	day=Read1307(0x04);
	month=Read1307(0x05);
	year=Read1307(0x06);	
	
	printf("Time:%d-%d-%d",year,month,day);
	printf(" %d:%d:%d\r\n",hour,minute,second);

 打印数据如下

 实际调试图片连接线

使用代码

(1条消息) stm32iic调试ds1307rtc时钟,采用iic接口,驱动软件,可以设置,读取ds1307时钟代码资源-CSDN文库

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大牛攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值