使用的MCU是ch32f103c8t6,開啟獨(dú)立看門狗后主函數(shù)不運(yùn)行了,在定時(shí)器里面喂狗,10ms.。試了很久都沒用。

void iwdg_init(void)

{

//第一種方式


//? ? //使能獨(dú)立看門狗的寄存器能夠被修改

//? ? IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

//

//? ? //配置獨(dú)立看門狗的計(jì)數(shù)器

//? ? //獨(dú)立看門狗的硬件時(shí)鐘 = 40KHz / 256 = 156Hz

//? ? IWDG_SetPrescaler(IWDG_Prescaler_256);

//

//? ? IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

//? ? //設(shè)置獨(dú)立看門狗的重載值,

//? ? IWDG_SetReload(150-1); //大概1秒

//

//? ? IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

//? ? //重載計(jì)數(shù)器值

//? ? IWDG_ReloadCounter();

//

//? ? IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

//? ? //使能看門狗

//? ? IWDG_Enable();






//第2種方式


? ? ? ? RCC->RSTSCKR = RCC_LSION;

? ? ? ? while((RCC->RSTSCKR & RCC_LSIRDY) == 0);


? ? ? ? IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );


? ? ? ? IWDG_SetPrescaler(IWDG_Prescaler_32);


? ? ? ? IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );

? ? ? ? IWDG_SetReload(4000);


? ? ? ? IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );

? ? ? ? IWDG_Enable();


? ? ? ? IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );

? ? ? ? IWDG_ReloadCounter();


}


我也想知道,后續(xù)想直接USB-CDC和上位機(jī)通訊,一旦喂狗異常直接初始化USB代碼,自動(dòng)保持通訊順暢.


您好,在CH32F103 EVT中有獨(dú)立看門狗的例程,可以參考一下例程看門狗的初始化以及喂狗。此外注意一下定時(shí)器的喂狗時(shí)間是否在要求時(shí)間內(nèi)。EVT下載鏈接如下。后續(xù)若有問題,可郵箱(lzs@wch.cn)溝通。

http://m.findthetime.net/downloads/CH32F103EVT_ZIP.html

?


image.png

image.png

我用的開發(fā)環(huán)境是rounriver,在這個(gè)軟件建立的工程。

找到原因是外設(shè)庫(kù)函數(shù)的使能看門狗用了“|”,按照數(shù)據(jù)手冊(cè),當(dāng)LSI穩(wěn)定后硬件置1,要用“&”


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频