STM32:STM32學習記錄6: IWDG

配置流程:
1:系統時鐘初始化,包括系統時鐘和要開放的IO口或者功能的時鐘配置。
2:IO口初始化,包括引腳,速率,輸入輸出模式等。
3:初始化看門狗。
注意:
注意如何操作喂狗!!!

#include"stm32f10x.h"
#include"stm32f10x_iwdg.h"

#define LED0_OFF  GPIO_SetBits(GPIOA,GPIO_Pin_8)    // LED0關
#define LED0_ON GPIO_ResetBits(GPIOA,GPIO_Pin_8)//LED0開


//初始化IO端口
void IO_Configuart(void)   
{
    GPIO_InitTypeDef GPIO_InitStructure;//定義 GPIO_InitStructure爲    GPIO_InitTypeDef結構體類型

    //配置GPIOA_8     LED0
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;//引腳選擇
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//50MHz速率
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推輓輸出
    GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化

    //配置GPIOA_13     KEY0
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;//引腳選擇
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//50MHz速率
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU ;//上拉輸入     由於按鍵按下爲低電平
    GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化
}

//復位和系統時鐘控制
void RCC_Configuare(void)
{
    SystemInit();//頻率設定有system_stm32f10x.c文件中的宏定義 開放某個宏 當調用SystemInit()時即可設置好頻率
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    RCC_ClockSecuritySystemCmd(ENABLE);//使能或者失能時鐘安全系統
}

void Delay(u16 speed)
{
    u16 i=0;
    while(speed!=0)
    {
        speed--;
        for(i=0;i<400;i++);
    }
}

//初始化看門狗
void IWDG_Configuare(void)
{
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能或者失能對寄存器 IWDG_PR 和 IWDG_RLR 的寫操作    
    IWDG_SetPrescaler(IWDG_Prescaler_64);//設置 IWDG 預分頻值爲4
    IWDG_SetReload(625); //設置 IWDG 重裝載值 
    IWDG_ReloadCounter();//    按照 IWDG 重裝載寄存器的值重裝載 IWDG 計數器 
    IWDG_Enable();// 使能 IWDG 
}

//不操作時LED閃 說明程序復位了 按鍵按下時常亮說明喂狗了
int main(void)
{
    RCC_Configuare();
    IO_Configuart();
    IWDG_Configuare();
    LED0_OFF;
    Delay(10000);//延時
    LED0_ON;
    while(1)
    {
        if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_13)==0)
        {
            IWDG_ReloadCounter();//    按照 IWDG 重裝載寄存器的值重裝載 IWDG 計數器   此處爲喂狗!!!!!!! 
        }
//        LED0_ON;
//        Delay(2000);
//        LED0_OFF;
//        Delay(2000);
    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章