| 银杏科技有限公司旗下技术文档发布平台 | 
	
		| 技术支持电话 | 0379-69926675-801 | 
	
		| 技术支持邮件 | Gingko@vip.163.com | 
	
		| 版本 | 日期 | 作者 | 修改内容 | 
	
		| V1.0 | 2020-11-14 | gingko | 初次建立 | 
STM32CubeMX教程八——IWDG看门狗实验
1.在主界面选择File–>New Project或者直接点击ACCEE TO MCU SELECTOR
 2.出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置
在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F429IGHx。
2.出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置
在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F429IGHx。
 3.配置RCC,使用外部时钟源
3.配置RCC,使用外部时钟源
 4.配置调试引脚
4.配置调试引脚
 5.将LED对应的3个引脚(PH14,PI3,PI4)设置为GPIO_Output
5.将LED对应的3个引脚(PH14,PI3,PI4)设置为GPIO_Output
 6.将ARM_KEY对应的引脚(PH15)设置为GPIO_INPUT
6.将ARM_KEY对应的引脚(PH15)设置为GPIO_INPUT
 7.引脚模式配置
7.引脚模式配置
 
 8.配置IWDG
8.配置IWDG
 9.时钟源设置,选择外部高速时钟源,配置为最大主频
9.时钟源设置,选择外部高速时钟源,配置为最大主频
 10.工程文件的设置, 这里就是工程的各种配置,我们只用到有限几个,其他的默认即可。  IDE我们使用的是 MDK V5.27。
10.工程文件的设置, 这里就是工程的各种配置,我们只用到有限几个,其他的默认即可。  IDE我们使用的是 MDK V5.27。
 11.点击Code Generator,进行进一步配置
11.点击Code Generator,进行进一步配置
 
-  Copy all used libraries into the project folder 
-  将HAL库的所有.C和.H都复制到所建工程中 
-  Copy only the necessary library files 
-  只复制所需要的.C和.H(推荐) 
-  Add necessary library files as reference in the toolchain project configuration file 
-  不复制文件,直接从软件包存放位置导入.C和.H 
-  优点:体积小,比较节约硬盘空间 
-  缺点:复制到其他电脑上或者软件包位置改变,就需要修改相对应的路径自行选择方式即可 
12.然后点击GENERATE CODE  创建工程
 创建成功,打开工程。
创建成功,打开工程。
 
实验八:IWDG看门狗实验——复位ARM
一、实验目的与意义
-   了解STM32 IWDG结构 
-   了解STM32 IWDG特征 
-   掌握IWDG的使用方法 
-   掌握STM32 HAL库中IWDG属性的配置方法 
-   掌握KEIL MDK 集成开发环境使用方法 
 
二、实验设备及平台
-  iCore3L 双核心板 
-  JLINK(或相同功能)仿真器 
-  Micro USB线缆 
-  Keil MDK 开发平台 
-  STM32CubeMX开发平台 
-  装有WIN XP(及更高版本)系统的计算机 
 
三、实验原理
看门狗简介
IWDG简介
-  此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。同步操作时,可主机时钟同步,也可从机时钟同步。 
-  独立看门狗(IWDG)由其专用低速时钟(LSI)驱动,因此即便在主时钟发生故障时仍然保持工作状态。窗口看门狗(WWDG)时钟由APB1时钟经预分频后提供,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够安全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精度计时窗口起作用的应用程序。由硬件支持的奇偶校验位发生和检验。 
IWDG主要特性
 
 
 
四、实验程序
1.主函数
int main(void)
{
   HAL_Init();
   SystemClock_Config();
   MX_GPIO_Init();
   MX_IWDG_Init();
  while (1)
  {
     while(ARM_KEY_STATE == KEY_DOWN);                           
     HAL_IWDG_Refresh(&hiwdg); 
     LED_RED_ON;
     LED_GREEN_OFF;
     LED_BLUE_OFF;
     HAL_Delay(500);
     LED_RED_OFF;
     LED_GREEN_ON;
     LED_BLUE_OFF;
     HAL_Delay(500);
     LED_RED_OFF;
     LED_GREEN_OFF;
     LED_BLUE_ON;
     HAL_Delay(500);
  }
}
 
2.HAL库独立看门狗函数库
HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg)
HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg)
功能:使用该函数定时喂狗
 
五、实验步骤
-  把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连); 
-  把iCore3L通过Micro USB线与计算机相连,为iCore3L供电; 
-  打开Keil MDK 开发环境,并打开本实验工程; 
-  烧写程序到iCore3L上; 
-  也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 
 
六、实验现象
iCore3L双核心板三色LED交替闪烁,当按键按下超过2s,看门狗复位ARM。