Arduino軟件I2C驅(qū)動DS3231時鐘芯片

由于之前Arduino UNO(ATmega328P)板子的SDASCL的錯位刚照,才導(dǎo)致了這篇文章的出現(xiàn)。
原理圖在此:

實際 SDA SCL --> 我的 SDA SCL
- A4(PC4) A5(PC5) --> - A3(PC3) A4(PC4)

畫原理圖的時候沒注意,一不留神就錯位了阅酪,導(dǎo)致現(xiàn)在不得不使用軟件I2C來與DS3231來通信框全。
不過還好察绷,國外已有大神寫好了軟件I2C的庫在這里

原作者

使用須知

但是DS3231的庫使用的是硬件I2C,需要移植一下,好在Bernhard的軟件I2C很好的適配了原硬件I2CWire庫津辩,移植只需做上圖的前三個步驟便可以了拆撼,很是方便。

需要注意的是:

1.他的軟件I2C庫中的函數(shù)全部寫在了.h頭文件中喘沿,這樣直接移植(只做以上三步)會導(dǎo)致文件被重復(fù)包含闸度,從而導(dǎo)致函數(shù)重復(fù)被定義的錯誤,需要對SoftI2CMaster.h進行適當(dāng)?shù)男薷募纯伞?/p>

2.在SoftI2CMaster.h文件中的函數(shù)定義前加上 inline 關(guān)鍵字即可解決重復(fù)定義的問題,也可以新建一個SoftI2CMaster.c文件蚜印,將SoftI2CMaster.h中的函數(shù)寫到SoftI2CMaster.c中去莺禁,這樣也可以解決。

3.DS3231庫函數(shù)的修改窄赋,這部分改動也較小哟冬。建議先把DS3231整個庫文件復(fù)制出來,方便修改寝凌。
DS3231.h頭文件中柒傻,替換#include<Wire.h>#include<SoftWire.h>
在頭文件之前较木,先加入SCL_PIN红符,SDA_PIN,SCL_PORTX,SDA_PORTX相關(guān)的宏定義,不能在頭文件之后加入伐债,否則可能會報錯预侯,修改后的DS3231.h頭文件部分如下:

#define SCL_PIN 4         //correspond with arduino IO instead of the avr chip pin.
#define SCL_PORT PORTC    //the port of the pin
#define SDA_PIN 3
#define SDA_PORT PORTC

#include <SoftWire.h>
//#include <Wire.h>

4.接著需要在DS3231.c文件中實例化一個 SoftWire類,如下:

SoftWire Wire = SoftWire();

這樣移植工作就做完了峰锁。

但需要注意的是萎馅,在編寫Arduino.ino文件時,需要對I2C初始化虹蒋,這時候需要對SoftWire實例化的類進行申明糜芳,如下:

extern SoftWire Wire;

至此飒货,整個軟件I2C移植過程就完成了。

已經(jīng)修改好了的文件可從下面地址下載:

1.修改后的軟件I2C文件下載地址:SoftI2CMaster_Add_inline
2.修改后的DS3231文件下載地址:DS3231WithSoftI2C

注:
1.原SoftI2CMaster庫制作者在此:SoftI2CMaster
2.原DS3231庫文件是從Arduino IDE中下載的峭竣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塘辅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子皆撩,更是在濱河造成了極大的恐慌扣墩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扛吞,死亡現(xiàn)場離奇詭異呻惕,居然都是意外死亡,警方通過查閱死者的電腦和手機滥比,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門亚脆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人守呜,你說我怎么就攤上這事型酥。” “怎么了查乒?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長郁竟。 經(jīng)常有香客問我玛迄,道長,這世上最難降的妖魔是什么棚亩? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任蓖议,我火速辦了婚禮,結(jié)果婚禮上讥蟆,老公的妹妹穿的比我還像新娘勒虾。我一直安慰自己,他們只是感情好瘸彤,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布修然。 她就那樣靜靜地躺著,像睡著了一般质况。 火紅的嫁衣襯著肌膚如雪愕宋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天结榄,我揣著相機與錄音中贝,去河邊找鬼。 笑死臼朗,一個胖子當(dāng)著我的面吹牛邻寿,可吹牛的內(nèi)容都是我干的蝎土。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绣否,長吁一口氣:“原來是場噩夢啊……” “哼瘟则!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枝秤,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤醋拧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后淀弹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丹壕,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年薇溃,在試婚紗的時候發(fā)現(xiàn)自己被綠了菌赖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡沐序,死狀恐怖琉用,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情策幼,我是刑警寧澤邑时,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站特姐,受9級特大地震影響晶丘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唐含,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一浅浮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捷枯,春花似錦滚秩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至争剿,卻和暖如春已艰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚕苇。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工哩掺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涩笤。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓嚼吞,卻偏偏與公主長得像盒件,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子舱禽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354