您的位置:首页 > 编程语言

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

2018-04-03 15:33 841 查看
    最近,在使用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系列的芯片是否会用这样的问题,没有试验过,并不清楚,如果大家有出现类似的问题,可以试试我这个方法是否可以解决的你问题。
本文为原创文章,如需转载请标明出处。如有疑问可以私信咨询
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息