打印
[STM8]

STM8S207 iic 总线忙的问题

[复制链接]
2849|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LSLDAY|  楼主 | 2017-5-22 11:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
麻烦有大神帮我解惑,捣鼓了好久了!我用的STM8S207MB  挂 M41T0 实时时钟  为什么经常在上电的时候死机?程序见附图

2.png (52.57 KB )

系统时钟初始化8M晶振

系统时钟初始化8M晶振

3.png (13.01 KB )

IIC初始化

IIC初始化

1.png (395.34 KB )

IIC读程序

IIC读程序
沙发
LSLDAY|  楼主 | 2017-5-22 11:36 | 只看该作者
在上电的时候有50%的几率会死在 总线判忙 那里, 而且有时死机时,在重启 RTC的时间全部清零了

使用特权

评论回复
板凳
LSLDAY|  楼主 | 2017-5-22 12:52 | 只看该作者
没人吗?好无助啊

使用特权

评论回复
地板
看不清的天空| | 2017-6-9 17:16 | 只看该作者
顶一下,我也是碰到一直IIC总线忙的问题

使用特权

评论回复
5
LSLDAY|  楼主 | 2017-6-10 08:02 | 只看该作者
看不清的天空 发表于 2017-6-9 17:16
顶一下,我也是碰到一直IIC总线忙的问题

你解决了吗   我现在给IIC端口加了上拉电阻,算是基本解决了,但偶尔还会出现死机问题  不过几率很小了

使用特权

评论回复
6
看不清的天空| | 2017-6-12 16:45 | 只看该作者
没有,我是用的例程调试,读写EEPROM,发现死在总线忙那个地方,不知道什么原因?

使用特权

评论回复
7
看不清的天空| | 2017-6-12 16:45 | 只看该作者
LSLDAY 发表于 2017-6-10 08:02
你解决了吗   我现在给IIC端口加了上拉电阻,算是基本解决了,但偶尔还会出现死机问题  不过几率很小了{: ...

没有,我是用的例程调试,读写EEPROM,发现死在总线忙那个地方,不知道什么原因?

使用特权

评论回复
8
LSLDAY|  楼主 | 2017-6-13 08:03 | 只看该作者
看不清的天空 发表于 2017-6-12 16:45
没有,我是用的例程调试,读写EEPROM,发现死在总线忙那个地方,不知道什么原因? ...

有没有加上拉电阻,另外用中断处理试试,别用轮询,还有我这有STM8Siic总线的视频 你要看看吗

使用特权

评论回复
9
看不清的天空| | 2017-6-14 08:45 | 只看该作者
LSLDAY 发表于 2017-6-13 08:03
有没有加上拉电阻,另外用中断处理试试,别用轮询,还有我这有STM8Siic总线的视频 你要看看吗 ...

没有,我不知道EEPROM读写的IIC是什么样的,我也只是想简单了解一下IIC这一块,我主管说叫我这个不用管。你视频发我看看吧,我这方面的资源。

使用特权

评论回复
10
LSLDAY|  楼主 | 2017-6-14 10:51 | 只看该作者
看不清的天空 发表于 2017-6-14 08:45
没有,我不知道EEPROM读写的IIC是什么样的,我也只是想简单了解一下IIC这一块,我主管说叫我这个不用管。 ...

这和EEPROM读写的IIC没关系,是单片机端口的结构决定了要加上拉电阻,你可以试下。你留个邮箱吧,我这个STM8S105视频比较老姚顺讲,发给你看看对你有用吗

使用特权

评论回复
11
看不清的天空| | 2017-6-14 12:59 | 只看该作者
LSLDAY 发表于 2017-6-14 10:51
这和EEPROM读写的IIC没关系,是单片机端口的结构决定了要加上拉电阻,你可以试下。你留个邮箱吧,我这个S ...

好的,我学习一下,913186334@qq.com 谢谢了!

使用特权

评论回复
12
LSLDAY|  楼主 | 2017-6-14 17:58 | 只看该作者
看不清的天空 发表于 2017-6-14 12:59
好的,我学习一下, 谢谢了!

链接:http://pan.baidu.com/s/1nvI7GvB  密码:0vcs   分享给你吧  邮件上传的有点慢

使用特权

评论回复
13
kingkits| | 2017-6-15 10:18 | 只看该作者
软件复位IIC
在协议中断,掉电或者系统复位后,可以通过如下步骤进行软件复位:
(1)      发送一个START条件;
(2)      发送9个时钟;
(3)      再发送一个START条件,并紧跟着一个STOP条件。

使用特权

评论回复
14
Thorald| | 2017-6-16 18:20 | 只看该作者
IIC读写的EEPROM,大多是时序问题

使用特权

评论回复
15
LSLDAY|  楼主 | 2017-6-19 17:08 | 只看该作者
kingkits 发表于 2017-6-15 10:18
软件复位IIC
在协议中断,掉电或者系统复位后,可以通过如下步骤进行软件复位:
(1)      发送一个 ...

谢谢这位仁兄,你的方法我试试。 想请教下你,你帮忙看下我的处理方式哪里有问题

使用特权

评论回复
16
LSLDAY|  楼主 | 2017-6-19 17:12 | 只看该作者
kingkits 发表于 2017-6-15 10:18
软件复位IIC
在协议中断,掉电或者系统复位后,可以通过如下步骤进行软件复位:
(1)      发送一个 ...

出现总线占用超时我是这么处理的 如图“程序段” , 复位IIC后虽然释放了总线,但初始化IIC后立马又被占用一直不释放,而且初始化IIC模块的时候,I2C->CR2赋值不进去如图  “CR2”

程序段.png (45.29 KB )

程序段

程序段

CR2.png (415.07 KB )

CR2

CR2

使用特权

评论回复
17
LSLDAY|  楼主 | 2017-6-19 17:14 | 只看该作者
Thorald 发表于 2017-6-16 18:20
IIC读写的EEPROM,大多是时序问题

那RTC时钟呢

使用特权

评论回复
18
LSLDAY|  楼主 | 2017-6-19 17:17 | 只看该作者
LSLDAY 发表于 2017-6-19 17:12
出现总线占用超时我是这么处理的 如图“程序段” , 复位IIC后虽然释放了总线,但初始化IIC后立马又被占 ...

这个方法我也是从一个大神**里学的

使用特权

评论回复
19
LSLDAY|  楼主 | 2017-6-20 16:40 | 只看该作者
kingkits 发表于 2017-6-15 10:18
软件复位IIC
在协议中断,掉电或者系统复位后,可以通过如下步骤进行软件复位:
(1)      发送一个 ...

你好 ,有点不太明白我想问下, 发送9个时钟什么意思?是IIC的时钟发送9个吗?我现在把IIC轮询改为中断处理了 ,这9个时钟怎么发?

使用特权

评论回复
20
kingkits| | 2017-6-21 15:55 | 只看该作者
LSLDAY 发表于 2017-6-20 16:40
你好 ,有点不太明白我想问下, 发送9个时钟什么意思?是IIC的时钟发送9个吗?我现在把IIC轮询改为中断处 ...

是这样,如果使用IIC模块不行的话,以该考虑直接使用GPIO的模式先进行软件复位,直到下位机能够正确释放数据总线为止,9个时钟是软件直接驱动GPIO(SCK)实现的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

288

帖子

5

粉丝