單片機(jī)的底層驅(qū)動(dòng)和應(yīng)用程序有何不同?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、底層驅(qū)動(dòng)
1、單片機(jī)底層開發(fā)一般指利用單片機(jī)的固有資源完成的控制功能的軟硬件開發(fā),比如時(shí)鐘、通訊協(xié)議(232、485、UART、SPI、IIC、CAN、IR等)、定時(shí)器、AD轉(zhuǎn)換、GPIO、外設(shè)驅(qū)動(dòng)(各種現(xiàn)場控制、各種環(huán)境狀況測控、電機(jī)控制、電磁閥、繼電器控制、鍵盤掃描、LED和LCD顯示)等。
2、根據(jù)時(shí)鐘樹圖,觀察初始化時(shí)鐘時(shí)需要用到哪些寄存器及各種外設(shè)需要的時(shí)鐘源。
3、配置定時(shí)器的時(shí)鐘源,分頻,比較值和PWM輸出。
(1)當(dāng)單片機(jī)內(nèi)部有幾種不同的時(shí)鐘源時(shí),必須配置相應(yīng)的寄存器配置需要的時(shí)鐘源,如果不進(jìn)行配置,將會(huì)使用單片機(jī)上電默認(rèn)的時(shí)鐘源。
(2)時(shí)鐘源決定著系統(tǒng)的工作頻率、定時(shí)器定時(shí)時(shí)間和通信時(shí)的波特率。
(3)定時(shí)器分頻是為了獲得更長的定時(shí)時(shí)間,如果采用標(biāo)志位累加的方式來延長定時(shí)時(shí)間,將會(huì)消耗單片機(jī)的RAM資源,在低端單片機(jī)中,由于RAM資源非常珍貴,因此只能采用定時(shí)器分頻來延長定時(shí)時(shí)間。
(4)比較值對于簡單的定時(shí)功能就是計(jì)算多少個(gè)數(shù)產(chǎn)生一次中斷,對于PWM輸出來說就是設(shè)置周期和占空比。
4、單片機(jī)的頭文件只是最基礎(chǔ)的定義,包括寄存器名稱和分頻值等,這些都是硬件確定好的內(nèi)容,不能更改否則會(huì)出現(xiàn)錯(cuò)誤。
5、通信協(xié)議配置的硬件方式是配置寄存器,軟件方式是用IO模擬通信。
6、底層驅(qū)動(dòng)與硬件相關(guān),編寫底層驅(qū)動(dòng)程序要非常了解硬件,同時(shí)給應(yīng)用層提供API函數(shù)調(diào)用接口,應(yīng)用層可以通過調(diào)用這些接口去訪問硬件,而不需要了解具體的硬件工作情況。
二、應(yīng)用程序
應(yīng)用程序是根據(jù)實(shí)際應(yīng)用需求去編寫的程序,指的是代碼的邏輯部分,直接去調(diào)用底層驅(qū)動(dòng)預(yù)留的接口,而不需要關(guān)心硬件底層的實(shí)現(xiàn)方式及實(shí)現(xiàn)過程。
三、形象說明
例如,你有一個(gè)應(yīng)用是控制每天早上六點(diǎn)鐘開燈,應(yīng)用程序只負(fù)責(zé)在適當(dāng)?shù)臅r(shí)間做適當(dāng)?shù)氖?到六點(diǎn)了,我要開燈了,按下按鍵)。具體它不知道為什么按下鍵就能開燈,因?yàn)榘聪骆I后開燈的過程就是底層驅(qū)動(dòng)來完成了。