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系列的芯片是否会用这样的问题,没有试验过,并不清楚,如果大家有出现类似的问题,可以试试我这个方法是否可以解决的你问题。
本文为原创文章,如需转载请标明出处。如有疑问可以私信咨询
对两种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系列的芯片是否会用这样的问题,没有试验过,并不清楚,如果大家有出现类似的问题,可以试试我这个方法是否可以解决的你问题。
本文为原创文章,如需转载请标明出处。如有疑问可以私信咨询
相关文章推荐
- 使用GPIO模拟IIC的遇到的N个问题
- 使用IAR和ZigBee遇到的问题
- 遇到Unhandled event loop exception No more handles 问题怎么解决
- OpenGL中使用glew库进行GLSL编程遇到的一个问题
- 使用Visual Studio编程过程中遇到的若干问题及解决建议
- 使用GNS3模拟ASA遇到的问题。
- 使用ASP.NET MVC 2编程时遇到的两个小问题
- Android使用HttpURLConnection编程遇到的302重定向问题
- Java Swing编程的时候使用JTable出现ArrayIndexOutOfBoundsException问题
- 用I/O口模拟IIC总线协议遇到的一些问题
- 关于使用Android studio 模拟华为设备时遇到的问题及解决
- 旧调重弹-SetUnhandledExceptionFilter的使用问题
- 在使用DataBinding中遇到的一个奇葩的 java.lang.NullPointerException问题
- xcode编程中使用使用了DOUAudioStreamer这个第三方遇到的问题及其解决方法
- 旧调重弹-SetUnhandledExceptionFilter的使用问题
- 使用IAR开发CC2530遇到的两个问题
- 使用IDEA时遇到问题:Exception in thread "main" java.lang.ClassNotFoundException:
- 在hql中使用left jion 遇到的问题 org.hibernate.hql.ast.QuerySyntaxException:
- 在使用Jsoup.connect时遇到Unhandled exception type IOException
- 在SharePoint中服务器端使用Word编程模型转换PDF遇到的问题以及解决方法