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