標(biāo)題: Proteus8.9 仿真STM32407ZGT6系列006_中斷 [打印本頁]
作者: kaillen 時(shí)間: 2020-4-12 18:15
標(biāo)題: Proteus8.9 仿真STM32407ZGT6系列006_中斷
一, 打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (133.34 KB, 下載次數(shù): 42)
下載附件
2020-4-12 18:12 上傳
圖1
二,調(diào)整虛擬器件,另存工程文件。(如下圖2,3所示)
2.png (137.86 KB, 下載次數(shù): 48)
下載附件
2020-4-12 18:12 上傳
圖2
3.png (131.49 KB, 下載次數(shù): 36)
下載附件
2020-4-12 18:12 上傳
圖3
三,點(diǎn)擊Source Code標(biāo)簽。(如下圖4所示)
4.png (95.64 KB, 下載次數(shù): 48)
下載附件
2020-4-12 18:12 上傳
圖4
四,編輯main.c, exit.c,exti.h, key.c,key.h, led.c,led.h 代碼如Proteus8.9 仿真STM32407ZGT6系列001(如下圖5所示)
5.png (95.64 KB, 下載次數(shù): 57)
下載附件
2020-4-12 18:12 上傳
圖5
五,Main.c 代碼:
#include "stm32f4xx_conf.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "exti.h"
int main (void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
delay_init(168); //初始化延時(shí)函數(shù)
uart_init(115200); //串口初始化
LED_Init(); //初始化LED端口
EXTIX_Init(); //初始化外部中斷輸入
LED0=0; //先點(diǎn)亮燈
while(1)
{
;
}
}
exit.c代碼:
#include "exti.h"
#include "delay.h"
#include "led.h"
#include "key.h"
//外部中斷0服務(wù)程序
void EXTI3_IRQHandler(void)
{
delay_ms(10); //消抖
if(KEY0==1)
{
LED0=!LED0;
}
EXTI_ClearITPendingBit(EXTI_Line3);//清除LINE4上的中斷標(biāo)志位
}
//外部中斷初始化程序
void EXTIX_Init(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
KEY_Init(); //按鍵對應(yīng)的IO口初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);//使能SYSCFG時(shí)鐘
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource3);//PB3 連接到中斷線0
/* 配置EXTI_Line0 */
EXTI_InitStructure.EXTI_Line= EXTI_Line3;//LINE0
EXTI_InitStructure.EXTI_Mode= EXTI_Mode_Interrupt;//中斷事件
EXTI_InitStructure.EXTI_Trigger= EXTI_Trigger_Rising; //上升沿觸發(fā)
EXTI_InitStructure.EXTI_LineCmd= ENABLE;//使能LINE3
EXTI_Init(&EXTI_InitStructure);//配置
NVIC_InitStructure.NVIC_IRQChannel= EXTI3_IRQn;//外部中斷0
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 0x00;//搶占優(yōu)先級0
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02;//子優(yōu)先級2
NVIC_InitStructure.NVIC_IRQChannelCmd= ENABLE;//使能外部中斷通道
NVIC_Init(&NVIC_InitStructure);//配置
}
exit.h代碼:
#ifndef __EXTI_H
#define __EXIT_H
#include "sys.h"
void EXTIX_Init(void); //外部中斷初始化
#endif
led.c代碼:
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOB時(shí)鐘
//GPIOF9,F10初始化設(shè)置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;//LED對應(yīng)引腳
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;//上拉
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化
}
led.h代碼:
#ifndef __LED_H
#define __LED_H
#include "sys.h"
//LED端口定義
#define LED0 PBout(6) // LED0
void LED_Init(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時(shí)鐘
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3; //KEY0 對應(yīng)引腳
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN;//普通輸入模式
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_100MHz;//100M
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_DOWN ;//下拉
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化
}
key.h代碼:
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
#define KEY0 PBin(3) //PB3
void KEY_Init(void); //IO初始化
#endif
六,點(diǎn)擊構(gòu)建工程按鈕,編譯工程。(如下圖6所示)
6.png (93.94 KB, 下載次數(shù): 57)
下載附件
2020-4-12 18:12 上傳
圖6
七,點(diǎn)擊窗口左下方仿真按鈕,可見黃燈點(diǎn)亮仿真,按下按鈕,中斷仿真。 (如下圖7,8,9所示)
7.png (135.18 KB, 下載次數(shù): 51)
下載附件
2020-4-12 18:12 上傳
圖7
8.png (134.5 KB, 下載次數(shù): 45)
下載附件
2020-4-12 18:12 上傳
圖8
9.png (135.03 KB, 下載次數(shù): 65)
下載附件
2020-4-12 18:12 上傳
圖9
八,選擇release,點(diǎn)擊構(gòu)建工程按鈕,編譯工程生成Hex文件。(如下圖10所示)
10.png (94.9 KB, 下載次數(shù): 46)
下載附件
2020-4-12 18:12 上傳
圖10
九, 系列的001-003虛擬仿真與開發(fā)板對應(yīng)已證明:虛擬仿真程序?qū)τ陂_發(fā)板有效,之后不再➕上下載到開發(fā)板的介紹。
附件Proteus8.9 仿真STM32407ZGT6系列006_中斷在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
需要進(jìn)一步了解,請加入QQ群:976235464
-
-
Proteus8.9 仿真STM32407ZGT6系列基礎(chǔ)模板t00.rar
2020-4-12 18:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
248.54 KB, 下載次數(shù): 13, 下載積分: 黑幣 -5
附件Proteus8.9 仿真STM32407ZGT6系列003_Keys在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可。
-
-
Proteus8.9 仿真STM32407ZGT6系列006_中斷.rar
2020-4-12 18:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
254.17 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5
附件Proteus8.9 仿真STM32407ZGT6系列006_中斷在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |