GPADC驅(qū)動(dòng)包括兩層:硬件訪問(wèn)層(HAL)和RT-Thread的適配層。
HAL 提供用于訪問(wèn) adc 外設(shè)寄存器的基本 API。 適配層提供常用的adc讀取功能。 用戶(hù)可以將它們與 RT-THREAD 設(shè)備一起使用。 ADC 支持 DMA 模式、中斷模式和輪詢(xún)模式,現(xiàn)在默認(rèn)使用輪詢(xún)模式。 主要功能包括:
可以使用 menuconfig 工具為每個(gè)項(xiàng)目選擇它,并且通常保存在 C 頭文件中。 默認(rèn)情況下,配置保存為 rtconfig.h。
下面的例子顯示了在一個(gè)項(xiàng)目頭文件中定義的標(biāo)志,項(xiàng)目是啟用FLASH控制器,NOR-FLASH模式啟用,使用FLASH控制器1和2的NOR模式,F(xiàn)LASH1大小為2MB,F(xiàn)LASH2為32MB。 步驟選擇配置:
要在 rt-tread 上啟用 ADC 設(shè)備,它還使用 menuconfig 工具并包含在頭文件中。 啟用 RT-DEVICE flash 界面的步驟(在 menuconfig 主菜單中):
配置完成后,用戶(hù)需要在所有需要訪問(wèn)驅(qū)動(dòng)程序的源代碼中包含頭文件。
對(duì)于每個(gè) adc 插槽,都有一個(gè)引腳,但該引腳可以復(fù)用到不同的功能。 在將其用作 ADC 之前,我們需要設(shè)置它的 pinmux 功能,這里是將 pin 設(shè)置為 ADC SLOT 0 的示例,更多詳細(xì)信息需要檢查硬件 pinmux 表:
需要2個(gè)不同的電壓,得到它們的寄存器值,可以得到準(zhǔn)確的偏移量和比率(mv per bit)。
適配器層注冊(cè) RT-Thread 請(qǐng)求的硬件支持功能,并使用 HAL 實(shí)現(xiàn)這些功能。 對(duì)于使用 RT-Thread 的用戶(hù),可以使用以下代碼作為示例: