找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4687|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于STM8S獨(dú)立看門狗的問(wèn)題有些不懂,求指點(diǎn)下

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
貼下代碼
void main()
{
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  led_init();
  iwdg_init();
  led2(on);
  while(1)
  {
   led1(on);
   delayms(600);
   led1(off);
   delayms(600);
  }
}

下面是子代碼
void led_init()
{
  GPIO_Init(GPIOD, GPIO_PIN_LNIB, GPIO_MODE_OUT_PP_HIGH_FAST);
}

#define led1(on_off)  (on_off==on) ? GPIO_WriteLow(GPIOD, GPIO_PIN_0):GPIO_WriteHigh(GPIOD, GPIO_PIN_0)
#define led2(on_off)  (on_off==on) ? GPIO_WriteLow(GPIOD, GPIO_PIN_1):GPIO_WriteHigh(GPIOD, GPIO_PIN_1)
#define led3(on_off)  (on_off==on) ? GPIO_WriteLow(GPIOD, GPIO_PIN_2):GPIO_WriteHigh(GPIOD, GPIO_PIN_2)
#define led4(on_off)  (on_off==on) ? GPIO_WriteLow(GPIOD, GPIO_PIN_3):GPIO_WriteHigh(GPIOD, GPIO_PIN_3)

void iwdg_init()
{
  //使能,啟動(dòng)看門狗
  IWDG->KR=0xcc;
  //解除 PR 及 RLR 的寫保護(hù)
  IWDG->KR=0x55;
  //預(yù)分頻寄存器
  //【7-3】必須保持,【2-0】從000到110對(duì)應(yīng)4,8,16,32,64,128,256
  IWDG->PR=0x05;//128分頻
  //重裝載寄存器,設(shè)置復(fù)位時(shí)間,
  //復(fù)位時(shí)間為(value*2)/(128K/128)
  //例如這個(gè)為(200*2)/1000,即400MS不喂狗就復(fù)位
  IWDG->RLR=200;
  IWDG->KR = IWDG_KEY_REFRESH;//0xaa,喂狗
}

程序里面delayms函數(shù)不過(guò)400MS就可以led1閃爍,大于400MS就是復(fù)位的現(xiàn)象,可是在小于400MS的時(shí)候不管喂不喂狗都一樣,求大神指導(dǎo)下,感激不盡

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:81678 發(fā)表于 2015-7-1 11:55 | 只看該作者
不好意思,烏龍了,邏輯分析儀看后明白了

QQ圖片20150701115108.png (27.16 KB, 下載次數(shù): 214)

QQ圖片20150701115108.png

QQ圖片20150701115155.png (5.8 KB, 下載次數(shù): 205)

QQ圖片20150701115155.png
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表