×
嵌入式 > 其他资讯 > 详情

STM8L在使用模拟IIC编程时遇到__iar_unhandled_exception的问题

发布时间:2021-07-13 发布时间:
|

最近,在使用STM8L051F3进行编程的时候,使用PC0和PC1进行模拟IIC编程,对于调试中出现的__iar_unhandled_exception的问题,对于该问题,自己的一些解决方法,并记录


对两种SDA配置方向的函数进行比较


方式1  DDR寄存器配置在CR1和CR2之前

方式2 DDR寄存器配置在CR1和CR2之后


在不开启中断的情况下,方式1 和方式2 在运行时,都没有发现问题。但是在开启中断后,方式1就会出现问题,在配置完DDR和CR1之后,函数就进入死循环,通过查看汇编可以看到如下代码


一直在这里面出不来,通过度娘的帮助,进入这里的原因是因为我们在使用寄存器编程时,大部分的中断函数没有编写,触发了中断,但是中断不知道跳转到哪里运行。


通过查询资料手册发现


当我们在输出模式下,配置成10M输出的时候,如果配置成输入模式时,对应的就是使能外部中断。所以在配置还未完成的时候就跳转到上述的死循环中。


解决方法


方式1 : 配置输出模式的时候,不配置成10MHz,及CR2的寄存器的位,不置1即可


方式2:将DDR寄存器的配置放置到CR1和CR2的寄存器后面,这个也是我现在使用的方法


这是我在使用STM8L051F3出现问题,对于其他STM8系列的芯片是否会用这样的问题,没有试验过,并不清楚,如果大家有出现类似的问题,可以试试我这个方法是否可以解决的你问题。


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
输入引脚的过电应力(EOS)保护