Proteus8.9 仿真STM32407ZGT6系列004_独立看门狗
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化 }
led.h 代码:
#ifndef __LED_H #define __LED_H #include "sys.h" //LED 端口定义 #define LED0 PBout(6) // LED0 #define LED1 PBout(8) // LED1 void LED_Init(void);//初始化
//GPIOF9,F10 初始化设置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_8;//LED 对应引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType= GPIO_OType_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
图5 五,Main.c 代码: #include "stm32f4xx_conf.h" #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "key.h" #include "iwdg.h" int main(void) {
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_DOWN ;//下拉
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化 GPIOE4
}
key.h 代码:
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
IWDG_Feed(); } delay_ms(10); }; }
iwdg.c 代码:
#include "iwdg.h" #include "led.h" ////////////////////////////////////////////////////////////////////////////////// void IWDG_Init(u8 prer,u16 rlr) {
#define KEY0
PBin(3)
//PB3
void KEY_Init(void); //IO 初始化
#endif
六,点击构建工程按钮,编译工程。(如下图 6 所示)
图6
七,点击窗口左下方仿真按钮,可见黄灯点亮仿真,按下按钮,进行喂狗,开始跳闪仿真。(如下图 7,
8,9 所示)
图7 图8
图9
一,打开文件(可以随文下载放置在文档中打开)。(如下图 1 所示)
图1
二,调整虚拟器件,另存工程文件。(如下图 2,3 所示)
图2
图3
三,点击 Source Code 标签。(如下图 4 所示)
图4
四,编辑 main.c,iwdg.c,iwdg.h,key.c,key.h,led.c,led.h 代码如 Proteus8.9 仿真 STM32407ZGT6 系列 001(如下图 5 所示)
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3; //KEY0 对应引脚
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN;//普通输入模式
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_100MHz;//100M
八,选择 release,点击构建工程按钮,编译工程生成 Hex 文件。(如下图 10 所示)
图 10
九, 系列的 001-003 虚拟仿真与开发板对应已证明:虚拟仿真程序对于开发板有效,之后不再➕上 下载到开发板的介绍。
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init(168); LED_Init(); KEY_Init(); delay_ms(500); IWDG_Init(4,1000); LED0=0; LED1=1; while(1) {
if(KEY0 ==1) {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(prer); IWDG_SetReload(rlr); IWDG_ReloadCounter();//reload
IWDG_Enable(); } void IWDG_Feed(void) {
#endif
key.c 代码:
#include "key.h"
#include "delay.h"
void KEY_Init(void)
来自百度文库
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);//使能 GPIOB 时钟
LED0=~PBin(6); LED1=0;
IWDG_ReloadCounter();//reload }
iwdg.h 代码:
#ifndef _IWDG_H #define _IWDG_H #include "sys.h" ////////////////////////////////////////////////////////////////////////////////// void IWDG_Init(u8 prer,u16 rlr); void IWDG_Feed(void); #endif
led.c 代码:
#include "led.h" void LED_Init(void) {
GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能 GPIOB 时钟
led.h 代码:
#ifndef __LED_H #define __LED_H #include "sys.h" //LED 端口定义 #define LED0 PBout(6) // LED0 #define LED1 PBout(8) // LED1 void LED_Init(void);//初始化
//GPIOF9,F10 初始化设置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_8;//LED 对应引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType= GPIO_OType_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
图5 五,Main.c 代码: #include "stm32f4xx_conf.h" #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "key.h" #include "iwdg.h" int main(void) {
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_DOWN ;//下拉
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化 GPIOE4
}
key.h 代码:
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
IWDG_Feed(); } delay_ms(10); }; }
iwdg.c 代码:
#include "iwdg.h" #include "led.h" ////////////////////////////////////////////////////////////////////////////////// void IWDG_Init(u8 prer,u16 rlr) {
#define KEY0
PBin(3)
//PB3
void KEY_Init(void); //IO 初始化
#endif
六,点击构建工程按钮,编译工程。(如下图 6 所示)
图6
七,点击窗口左下方仿真按钮,可见黄灯点亮仿真,按下按钮,进行喂狗,开始跳闪仿真。(如下图 7,
8,9 所示)
图7 图8
图9
一,打开文件(可以随文下载放置在文档中打开)。(如下图 1 所示)
图1
二,调整虚拟器件,另存工程文件。(如下图 2,3 所示)
图2
图3
三,点击 Source Code 标签。(如下图 4 所示)
图4
四,编辑 main.c,iwdg.c,iwdg.h,key.c,key.h,led.c,led.h 代码如 Proteus8.9 仿真 STM32407ZGT6 系列 001(如下图 5 所示)
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3; //KEY0 对应引脚
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN;//普通输入模式
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_100MHz;//100M
八,选择 release,点击构建工程按钮,编译工程生成 Hex 文件。(如下图 10 所示)
图 10
九, 系列的 001-003 虚拟仿真与开发板对应已证明:虚拟仿真程序对于开发板有效,之后不再➕上 下载到开发板的介绍。
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init(168); LED_Init(); KEY_Init(); delay_ms(500); IWDG_Init(4,1000); LED0=0; LED1=1; while(1) {
if(KEY0 ==1) {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(prer); IWDG_SetReload(rlr); IWDG_ReloadCounter();//reload
IWDG_Enable(); } void IWDG_Feed(void) {
#endif
key.c 代码:
#include "key.h"
#include "delay.h"
void KEY_Init(void)
来自百度文库
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);//使能 GPIOB 时钟
LED0=~PBin(6); LED1=0;
IWDG_ReloadCounter();//reload }
iwdg.h 代码:
#ifndef _IWDG_H #define _IWDG_H #include "sys.h" ////////////////////////////////////////////////////////////////////////////////// void IWDG_Init(u8 prer,u16 rlr); void IWDG_Feed(void); #endif
led.c 代码:
#include "led.h" void LED_Init(void) {
GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能 GPIOB 时钟