欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
proteus仿真用按鍵STM32單片機中斷控制LED燈的亮滅,按鍵沒有反應,求大佬幫助
[打印本頁]
作者:
z2y
時間:
2022-4-29 15:41
標題:
proteus仿真用按鍵STM32單片機中斷控制LED燈的亮滅,按鍵沒有反應,求大佬幫助
小白求助,謝謝大家
#include "stdio.h"
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "sys.h"
#include "misc.h"
uint32_t i;
void delay_ms(uint32_t ms)
{
uint32_t i_cnt,j_cnt;
for(i_cnt=0;i_cnt<3000;i_cnt++);
for(j_cnt=0;j_cnt<ms;j_cnt++);
}
void led_cfg( )
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIOC->BSRR=0xff;
}
void key_cfg( )
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1| GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIOC->BSRR=0xff;
}
void EXTI_cfg( )
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //選擇中斷分組2
NVIC_InitStructure.NVIC_IRQChannel= EXTI0_IRQn; //選擇中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占式中斷優先級設置為0
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02; //響應式中斷優先級設置為0
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel= EXTI1_IRQn; //選擇中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02; //響應式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel= EXTI2_IRQn; //選擇中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02; //響應式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel= EXTI3_IRQn; //選擇中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02; //響應式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQn; //選擇中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0x02; //響應式中斷優先級設置為
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01; //搶占式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0; //響應式中斷優先級設置
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中斷
NVIC_Init(&NVIC_InitStructure);
EXTI_InitStructure.EXTI_Line=EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
int main(void)
{
delay_ms (1);
led_cfg( );
key_cfg( ) ;
EXTI_cfg( );
GPIO_ResetBits(GPIOC,GPIO_Pin_2);
while (1)//測試程序是否運行
{
delay_ms (100);
GPIO_ResetBits(GPIOC,GPIO_Pin_2);
delay_ms (100);
GPIO_SetBits(GPIOC,GPIO_Pin_2);
}
}
void EXTI0_IRQHandler(void)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_1);
EXTI_ClearITPendingBit(EXTI_Line2); //清除 LINE 上的中斷標志位
}
復制代碼
作者:
z2y
時間:
2022-4-29 15:57
EXTI_ClearITPendingBit(EXTI_Line2); //清除 LINE 上的中斷標志位
作者:
z2y
時間:
2022-4-29 15:58
EXTI_ClearITPendingBit(EXTI_Line2); //清除 LINE 上的中斷標志位
最后一行我復制錯了 清除的是Line0
作者:
z2y
時間:
2022-4-29 16:02
標題:
RE: proteus仿真用按鍵STM32單片機中斷控制LED燈的亮滅,按鍵沒有反應,求大佬幫助
仿真圖
51hei.PNG
(113.91 KB, 下載次數: 41)
下載附件
2022-4-29 16:02 上傳
作者:
Y_G_G
時間:
2022-4-29 20:37
1:GPIO_EXTILineConfig
中斷IO需要映射
2:中斷端口輸入模式要設定為上拉輸入 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
3:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//使能復用和端口時鐘
我不會用proteus,所以,我從不仿真
作者:
Y_G_G
時間:
2022-4-29 22:07
忘記了,中斷要寫在stm32f10x_it.c中
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1