前文我們介紹了一個簡單的web應用:通過web顯示當前的溫度和濕度,程序非常簡單。本文介紹的這個web應用則相對要綜合一些,這個應用的功能如下:
1、可以讀取當前溫濕度
2、可以通過web控制繼電器實現遠程控制開關的功能
3、能夠設置網絡參數,并將網絡參數保存到EEPROM
4、通過web對Rainbow進行軟件復位
5、使用了獨立看門狗,確保應用永遠不會“死掉”
在軟件包的“Projects\Web-Complex”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。由于程序量相對之前介紹的應用要多一些,所以就不一一介紹了,這個應用實際上是綜合了之前介紹的各個功能模塊基礎上形成的,程序其實也比較淺顯易懂,程序量(不含注釋)大約200行左右,請大家自己分析。

如果點擊“重啟系統”,MCU將會復位。
在這個應用中,為了保證系統永遠不會死機,我們采用了獨立看門狗,使用看門狗非常簡單,我們看看程序片段:
int main()
{
setup();
//開啟看門狗,10秒之內必須喂狗
IWDG_Configuration(10000);
while(1)
{
server.processConnection();
//喂狗,防止復位
IWDG_ReloadCounter();
if(reboot) softReset();
}
}
程序首先調用IWDG_Configuration(10000);設置喂狗時間,這里設置的是10s,也就是說10秒之內如果沒有喂狗的話,MCU將會自動復位;然后在每個循環調用IWDG_ReloadCounter()來進行喂狗。程序正常運行期間每次都能保證在10s之內喂狗,如果出現故障,無法在10s之內喂狗,MCU將會自動復位。