我在开发一个电机控制程序,STM8105S的GPIO在main函数的开始便进行了一次配置,除TLI(PD7)管脚外,其他所有的输入Port口均禁能外部中断。剩下的代码中,没有任何对 GPIO的输入输出、外部中断控制寄存器做配置的操作。 可是发现了一个奇怪的问题:我的代码跑到一定时间后,突然进入了INTERRUPT_HANDLER(EXTI_PORTE_IRQHandler, 7)的外部中断处理程序,并且一直死在其中,不能跳出。于是此时我通过单步调试查了一下GPIOE的寄存器配置,发现GPIOE的配置被修改了!允许外部中断了。可我真的没有开放过GPIOE的外部中断,似乎是寄存器的值自动被篡改。调试中也还发现,每次调试被篡改的值还不一样。 我一直在想,是不是因为我的变量定义太多了(我有一个8位400个元素的数组,还有其他一些变量),导致堆栈溢出,从而影响了寄存器的值呢?一直不解,希望高手解答一下!谢谢! |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】