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





