STM32简单的外部IO中断一直调试不成功,请大神帮忙!!!
发布网友
发布时间:2022-05-13 12:00
我来回答
共2个回答
热心网友
时间:2023-10-09 10:32
看了一下没发现有什么问题,是否是硬件问题或者是程序还初始化了其他外设导致的:
贴出一个我的代码:
#define XC4X_CE_GPIO_PORT GPIOA
#define XC4X_CE_GPIO_PORT_CLK RCC_APB2Periph_GPIOA
#define XC4X_CE_GPIO_PIN GPIO_Pin_8
#define XC4X_IRQ_GPIO_PORT GPIOA
#define XC4X_IRQ_GPIO_PORT_CLK RCC_APB2Periph_GPIOA
#define XC4X_IRQ_GPIO_PIN GPIO_Pin_9
#define XC4X_IRQ_GPIO_EXIT_SOURCE GPIO_PortSourceGPIOA
#define XC4X_IRQ_GPIO_EXIT_PIN GPIO_PinSource9
#define XC4X_IRQ_GPIO_EXIT_LINE EXTI_Line9
#define XC4X_IRQ_EXIT_NO EXTI9_5_IRQn
NVIC_SetVectorTable( NVIC_VectTab_FLASH, 0x00 );
NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 );
/* XC4X-IRQ引脚--中断功能 */
RCC_APB2PeriphClockCmd(XC4X_IRQ_GPIO_PORT_CLK | RCC_APB2Periph_AFIO , ENABLE);
GPIO_InitStructure.GPIO_Pin = XC4X_IRQ_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(XC4X_IRQ_GPIO_PORT, &GPIO_InitStructure);
GPIO_EXTILineConfig(XC4X_IRQ_GPIO_EXIT_SOURCE, XC4X_IRQ_GPIO_EXIT_PIN);
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = XC4X_IRQ_GPIO_EXIT_LINE;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* 注意此处设置优先级大于等于configMAX_SYSCALL_INTERRUPT_PRIORITY */
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = XC4X_IRQ_EXIT_NO;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0B;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);追问硬件就一个按键,一端接IO口另一端接地。硬件仿真单步执行查看相关寄存器没问题,万用表测量端口有电平跳变,但内部就是触发不了中断!
追答你换个引脚看看,搞不好引脚里面挂掉了
或者使用我的代码试试,实测ok的
热心网友
时间:2023-10-09 10:33
代码比较长……你看我的博客中的文章就ok了。追问别人的看的挺多,也都能理解,可是自己写的感觉跟别人差不多,就是不能实现,所以我想找出自己的错误到底在哪!
STM32简单的外部IO中断一直调试不成功,请大神帮忙!!!
贴出一个我的代码:define XC4X_CE_GPIO_PORT GPIOA define XC4X_CE_GPIO_PORT_CLK RCC_APB2Periph_GPIOA define XC4X_CE_GPIO_PIN GPIO_Pin_8 define XC4X_IRQ_GPIO_PORT GPIOA define XC4X_IRQ_GPIO_PORT_CLK RCC_APB2Periph_GPIOA define XC4X_IRQ_GPIO_PIN GPIO_...
STM32F103,了解一下?
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了ARM Cortex-M3内核,主频高达72MHz。2. 内置IO口和存储器接口,便于与外部器件进行通信和控制。3. 支持外部时钟和复位功能,可通过端口配置实现其他功能。4. 具有容忍5V电压的能力,适用于较宽的工作电压范围。5. 内置看门狗定时器和电源管理单元,可提高系统的稳定性和功耗效率。6. 支持多种外设接口,如ADC、DAC、UART、SPI等。7. 集成了…STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过1000个型号。STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服...
STM32的外部中断问题
问题1,EXTI0~EXTI15每个对应于一组(PA,PB,PC,PD..)1,在用外部中断的时候如用EXTI4(外部中断4)需要配置PA4还是PB4...这几组io口的第四个管脚作为输入,只能选择一个。问题2,void EXTI_Configuration(void) 中断初始化函数 EXTI_InitTypeDef EXTI_InitStructure; 定义EXTI_InitStructure为中断配...
关于STM32外部中断的问题
解决方法:把中断的引脚接上拉电阻就可以了。(前提按下时低电平为进入中断)因为不接上拉电阻引脚电平不稳定,会受到外面的干扰。一般板子没问题的,不用担心,你试一下看好用不?
STM32外部中断无法进入中断程序,请问下面的程序哪里不对呀???_百度...
1、先查找一下你所使用的芯片数据手册,看一下外中断接口是哪一个IO。2、只做外中断功能,检测到下降沿之后让一个连接LED的IO电平翻转,观察中断是否成功。3、只做定时器功能,定时时间到让连接LED的IO电平翻转,观察定时器是否成功。4、在定时器中的服务函数里,做AD采样功能,观察AD是否成功采样。5...
stm32通过串口烧写程序是一直是这个问题,不知道该如何搞,求大神帮忙...
请确保你电脑上的串口工作正常,测试方法,打开一个串口调试助手,短接串口线的TX和RX,然后串口调试助手发送一个字符,比如a,如果串口通信正常,你能在串口调试助手中收到a.请确保STM32上用于ISP的串口是串口1,IO是PA9,PA10,如果是STM32F2XX,也可以是串口3.请确保STM32在上电时两个BOOT引脚的电平正确(...
stm32的中断的问题
通道 主要针对,外部中断 一个通道选择 STM32上面 每个IO都可以做为外部中断 但不同的是 EXT0-4 可以独立中断 而5-9 用一个中断处理函数 10-15 用一个中断处理函数 具体例程 还看ST 的例子
STM32中断实验了该怎么办?
而我们是通过KEY1按键,对应的IO口就是PE3,所以由上图的映射关系,我们知道,我们应该选择中断线3与之对应; 在官方提供的头文件stm32f4xx.h中,我们可以看到: [cpp] view plain copy typedef struct { __IO uint32_t MEMRMP; /*!< SYSCFG memory remap register, Address offset: 0x00 */ __IO uint...
stm32的板子,为啥这种配置无法进入串口接收中断??求大神指教
没有使能IO口的复用时钟
stm32 哪些外部中断管脚能用,为什么有些端口不能进入外部中断?
中断管脚需要是正常的IO口,除去特殊或专门用途的管脚外,其他可以作为外部中断用。查看中断源你会发现,只有GPIOx的第0-4管脚有各自的中断名称,第5-9管脚共用一个中断名称,第10-15管脚共用一个中断名称。这在STM32的技术手册中会有详细说明,可以去看看。
stm32多路pwm频率太快中断出不来
PWM输出的优先级比较低。stm32多路pwm若在在断回调函数里改变IO电平观察周期,会发现即便设置了更高的定时器频率,IO电平改变周期在4hs以上而不是0.5hs。输出的优先级比较低,频率太快,PWM输出就会中断。