STM32F0項(xiàng)目進(jìn)階之實(shí)時(shí)時(shí)鐘DS1307
掃描二維碼
隨時(shí)隨地手機(jī)看文章
寫在前面的話:STM32F0項(xiàng)目進(jìn)階系列是硬件系統(tǒng)工程師星克曼以項(xiàng)目進(jìn)階的方式寫出的入門教程,以項(xiàng)目開發(fā)為藍(lán)底,快速學(xué)習(xí)進(jìn)入實(shí)戰(zhàn)。
STM32 I2C總線在上一講 STM32F0項(xiàng)目進(jìn)階之I2C 中已經(jīng)講過(guò)了,已經(jīng)將標(biāo)準(zhǔn)庫(kù)抽象成hal_i2c.c和hal_i2c.h了,下面的就是適配不同的芯片了,這次我們適配一下DS1307。
電路配置
引腳圖如下:
引腳描述如下:
電路配置如下:
BCD格式
注意:時(shí)間和日期的格式均是BCD格式的。
上電工作
上電即可以工作,時(shí)鐘使能的話,就沒(méi)有其它配置;如果沒(méi)有使能就看要點(diǎn)二。
時(shí)鐘使能
00h 地址的寄存器第7 位為器件時(shí)鐘允許位(CH),此位為1則芯片未開始工作,即時(shí)鐘未走時(shí),所以在上電時(shí)單片機(jī)要先讀出秒,并判斷位7(CH)是否為1,如為1要把該位清零寫入秒寄存器(地址為0),并把其他的時(shí)間單元設(shè)定為默認(rèn)值。如果上電復(fù)位時(shí)讀出的秒的最高位CH為0,說(shuō)明時(shí)鐘已工作(前已對(duì)CH清0,且停電后有備用電池),此時(shí)不能重寫時(shí)間單元!
時(shí)間配置
直接把時(shí)間值寫入0x00~0x06的時(shí)間寄存器。
時(shí)間讀取
直接讀取0x00~0x06的時(shí)間寄存器即可。
芯片時(shí)鐘輸出
控制寄存器的描述如下
要想芯片OUT腳輸出一定頻率的時(shí)鐘,BIT4的SQWE需要被使能,輸出頻率是靠RS[1:0]配置。