为什么我的STM32 进入停止模式,外部中断没有响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的STM32 进入停止模式,外部中断没有响应相关的知识,希望对你有一定的参考价值。

参考技术A stm的四种不同模式:run,stop,sleep,standby是可以设置的,如果没有设置不会进入的停止模式。可以参考所选的IC的datasheet! 参考技术B 我的也是,功耗比stop模式前少了10mA左右,但是外部中断及RTC闹钟中断都进不去,同问???补充:RTC闹钟中断已经设置了EXTI17。

STM32的外部中断问题

1.EXTI0~EXTI15对应引脚是一一对应的还是通道自己设的?怎么知道哪个引脚是哪个通道?
2.外部中断处理函数一般都有:
void EXTI_Configuration(void)

EXTI_InitTypeDef EXTI_InitStructure; //外部设备中断恢复默认参数
两句是什么意思??
3. 如果我的主程序调用了几个函数库,如:stm32f10x_exti、stm32f10x_gpio、stm32f10x_nvic,
那么我的主函数里用不到库里的所有函数,有的子函数就定义了没有被调用,在C语言单片机里不是说如果定义了没有调用函数会导致编译器错误吗?? 那在SDK里编译器是怎么处理未调用的函数的??

4.MDK中STM32固件库中为什么定义寄存器结构typedef struct GPIO_typedef ,然后用指针GPI0_X->ODR,
这样就能设置I/O输出了?我在MDK里没有找到ODR的地址定义啊?而且每个端口的ODR应该是不同的,为什么通过GPI0_X->ODR就能访问相应的ODR了??
能不能解释下, 答了再加分

参考技术A 问题1,EXTI0~EXTI15每个对应于一组(PA,PB,PC,PD..)1,在用外部中断的时候如用EXTI4(外部中断4)需要配置PA4还是PB4...这几组io口的第四个管脚作为输入,只能选择一个。
问题2,void EXTI_Configuration(void) 中断初始化函数
EXTI_InitTypeDef EXTI_InitStructure; 定义EXTI_InitStructure为中断配置的结构体,然后对结构体内容进行配置之后初始化外部中断。

问题3,你要用什么加什么外设,外设的函数库都是以头文件的格式加入(.h)文件,编译的时候编译器搜索加入的头文件包含的内容,有就编译没有用到的不编译进去,你说的情况之后再加入主函数里面多余的子函数才报错。
有问题可以补充。
不是SDK吧 应该是MDK本回答被提问者采纳

以上是关于为什么我的STM32 进入停止模式,外部中断没有响应的主要内容,如果未能解决你的问题,请参考以下文章

STM32L051低功耗STOP模式串口中断唤醒

STM32F030低功耗

STM32 复位后进入停止模式

STM32_中断

STM32——外部中断

stm32外部中断引脚模式改变