根據(jù)st官方手冊(cè)提供描述不難看出,ADC模擬看門(mén)狗其實(shí)就是用戶(hù)可以設(shè)置一個(gè)AD值上下限值,然后打開(kāi)此模擬看門(mén)狗中斷開(kāi)關(guān),那么就會(huì)在檢測(cè)到當(dāng)IO輸入轉(zhuǎn)換AD值小于下限值或大于上限值時(shí)進(jìn)入相應(yīng)的中斷函數(shù)。大致就是這么一個(gè)功能實(shí)現(xiàn)過(guò)程。
根據(jù)表63 可以看出,模擬看門(mén)狗可以設(shè)置為多通道和單通道模式,即可以通過(guò)設(shè)置相應(yīng)的寄存器位來(lái)選擇某一通道或多通道打開(kāi)模擬看門(mén)狗檢測(cè)。
那么明白了以上這些基礎(chǔ)規(guī)則,那么我就要根據(jù)官方提供的庫(kù)文件及里面的使用說(shuō)明來(lái)配置相應(yīng)函數(shù)來(lái)使用模擬看門(mén)狗。
打開(kāi)此文件后下一步:
看!在這個(gè)官方提供的.c文件里面已經(jīng)有介紹關(guān)于模擬看門(mén)狗使用的詳細(xì)介紹的,只要理解了英文描述的意義,結(jié)合之前看數(shù)據(jù)手冊(cè)關(guān)于ADC模擬看門(mén)狗的描述就會(huì)很快的完成模擬看門(mén)狗的配置程序。
下面即是完成的模擬看門(mén)狗配置函數(shù):
最后還不要忘記加入打開(kāi)看門(mén)狗中斷的函數(shù):
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置過(guò)程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占優(yōu)先級(jí)1級(jí)
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模擬看門(mén)狗配置函數(shù)
單通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是對(duì)ADC模擬看門(mén)狗的使用做了一個(gè)小結(jié),當(dāng)然只是用了其中一部分功能,如有紕漏,請(qǐng)您指出,不勝感謝。
通過(guò)此次模擬看門(mén)狗的使用,我更加明白要利用官方資源的重要性,解鈴還須系鈴人,這句話(huà)非常適合做技術(shù)的人,當(dāng)遇見(jiàn)問(wèn)題時(shí),無(wú)從下手或不知怎么樣下手才會(huì)效率高的解決問(wèn)題時(shí),這時(shí)就應(yīng)該想到生產(chǎn)廠(chǎng)家才是解決問(wèn)題的源頭關(guān)鍵,那里有相當(dāng)豐富的使用說(shuō)明文檔及工具資源,這樣就避免了在網(wǎng)絡(luò)上找不到自己用到的相關(guān)應(yīng)用時(shí)而苦惱無(wú)助的情況,謹(jǐn)以此心得與讀者共勉!