來源:公眾號(hào)【魚鷹談單片機(jī)】,作者:魚鷹Osprey,ID ??:emOsprey
ADC采樣應(yīng)該是項(xiàng)目中最常用的外設(shè)了,比如采個(gè)電池電壓,芯片工作電壓、溫度等,都要使用ADC外設(shè),但是ADC看著簡(jiǎn)單,使用時(shí)卻困難多多。
比如adc時(shí)鐘,各種規(guī)則、注入通道,內(nèi)部、外部通道,轉(zhuǎn)換順序,觸發(fā)方式,中斷、dma等都要了解,否則你沒法正確采樣,涉及到的寄存器也很多,稍微不慎,就采樣失敗。
我只是想采個(gè)樣而已,咋這么難呢?
確實(shí)現(xiàn)在的網(wǎng)上資料很豐富,但是經(jīng)驗(yàn)不多的初級(jí)程序員還是會(huì)一頭霧水,而且借鑒(抄)來的代碼稍微增加個(gè)通道可能就無法正確采集數(shù)據(jù),也不知該怎么排查問題,麻煩的很。
那有什么辦法呢?
有,stm32CubeMx算是不錯(cuò)的工具了,但是更新頻繁、bug也多、難解決,增加用戶代碼還要怕它意外刪除。
那還要其他辦法嗎?
當(dāng)然有。
就是自己寫一個(gè)框架,可以按照需求簡(jiǎn)單修修改改就能采個(gè)樣,比如選擇通道、采樣引腳、增、刪通道、是否使用dma等等,簡(jiǎn)簡(jiǎn)單單就可以。但寫這樣一個(gè)框架費(fèi)時(shí)費(fèi)力、麻煩也多,bug也多,沒有豐富的開發(fā)經(jīng)驗(yàn),根本搞不定,那咋辦,還有其它辦法嗎?還真有,魚鷹歷時(shí)兩年設(shè)計(jì)了一款單片機(jī)驅(qū)動(dòng)框架,專為項(xiàng)目而生,只需要按照需求修改就可采樣,每個(gè)驅(qū)動(dòng)都有單獨(dú)的測(cè)試用例,清晰明了。就比如adc,按照如下格式修改,即可完成采樣,多個(gè)通道采樣同樣高效(特殊復(fù)雜需求需要自行修改源碼,這種需求一般項(xiàng)目也用不上,先按簡(jiǎn)單的來)
若有引腳使用沖突,會(huì)自動(dòng)報(bào)錯(cuò)。
測(cè)試結(jié)果:
另外還有專門的培訓(xùn)視頻講解正在進(jìn)行中,非常適合有一定經(jīng)驗(yàn)的工程師品鑒。
剛加入學(xué)員評(píng)價(jià)因?yàn)轸~鷹也要不時(shí)的玩點(diǎn)小項(xiàng)目,所以這個(gè)工程將持續(xù)維護(hù)(暫不開源),不斷增加新功能,若有bug,也可及時(shí)提出由魚鷹解決。
目前工程也有很多常用外設(shè),如串口、日志打印、adc、oled、eeprom、spi-flash、can、usb等,都是為了方便修改而設(shè)計(jì),非常適合實(shí)現(xiàn)自己的簡(jiǎn)單項(xiàng)目。
還等什么,感興趣的話,就來找魚鷹吧。
個(gè)人微信「EmbeddedOsprey」