历史上的今天
今天是:2025年08月08日(星期五)
2019年08月08日 | STM8L在使用模拟IIC编程时遇到__iar_unhandled_exception的问题
2019-08-08 来源:eefocus
最近,在使用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系列的芯片是否会用这样的问题,没有试验过,并不清楚,如果大家有出现类似的问题,可以试试我这个方法是否可以解决的你问题。
史海拾趣
|
一切,从破坏开始…… 家里的后院,洗衣机矩形的外壳被拆了下来,一把螺丝起子、一根铁槌,洗衣机机身内的片片块块散落一地, abcd、acdb、dacb、cdba……太多可能的排列组合,就算想破他的小脑袋瓜儿,也变不回原来的洗衣机…… 明基桃 ...… 查看全部问答> |
|
WINCE 下创建网络链接---RasSetEntryProperties 如何设置参数 急!希望大侠们帮忙啊。。。分数不够还可以再加 RasSetEntryProperties 该函数有两个参数我不太懂得设置,一个是LPCTSTR lpszEntry 还有一个是LPBYTE lpbDeviceInfo; 1.lpszEntry 里面的那些参数应该如何设置? 2.lpbDeviceInfo 用传说中的typedef struct {   ...… 查看全部问答> |
|
请问如何获得pci9054的注册号或者如何获得驱动WinDriver的注册号 用WinDriver作为PCI9054的驱动时,其中驱动程序中的这一部分: hWD = WD_Open(); if (hWD == INVALID_HANDLE_VALUE) {的? ...… 查看全部问答> |
|
因为最近装了win7 ,与pb4.2不兼容,所以没办法,只能用虚拟机装这些软件,但是装了pb4.2后运行时。黑屏....所以evc都不用装了....运行也是黑屏....请问怎么解决,我看了网上很多解决的帖子,都没用,请问大家还会是哪方面的问题...跟虚拟机设置有 ...… 查看全部问答> |
|
请教各位,我通过PDA的串口采集到数据后如何同步到PC机上,如何编写相关的程序?PDA上是不是要建立数据库,如SQL service for CE?在线等待中。。。。。。… 查看全部问答> |
|
dsp的中断优先级的修改可以由头文件DSP281x_SWPrioritizedIsrLevels.h定义PIE组的优先级和组内的优先级,源文件.c文件中的中断程序对IER和PIEIERx进行了赋值,以此屏蔽优先级低的中断。 & ...… 查看全部问答> |




