求助PIC16F690的硬件I2C中断问题~

[复制链接]
 楼主| mygod985 发表于 2009-6-4 11:42 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;PIC做从机,不知道怎么回事,SSPIF一直不能置1,通过软件置1能进入中断服务程序。<br />用示波器量了无应答信号<br /><br />初始化程序如下:<br />void&nbsp;init_I2C(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化函数<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;j&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB&nbsp;=&nbsp;0x50;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SSPCON&nbsp;=&nbsp;0x36;&nbsp;//7地址为从<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPSTAT=&nbsp;0x80;//初始状态<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPADD&nbsp;=&nbsp;0xa8;//器件地址<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;SSPBUF;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPOV&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}<br /><br />void&nbsp;init_interrupt()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;GIE&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1;&nbsp;//全局中断允许<br />&nbsp;&nbsp;&nbsp;&nbsp;PEIE&nbsp;&nbsp;&nbsp;=&nbsp;1;//外设中断允许<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPIE&nbsp;&nbsp;=&nbsp;1;//SSP中对允许<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPIF&nbsp;&nbsp;=&nbsp;0;//初始化SSP&nbsp;中断标志&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;INTE&nbsp;=&nbsp;1;//外部中断允许<br />&nbsp;&nbsp;&nbsp;&nbsp;INTF&nbsp;=&nbsp;0;//初始化外部中断标志<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}
yewuyi 发表于 2009-6-4 12:29 | 显示全部楼层

检查SCL、SDA硬件是否正常

  
 楼主| mygod985 发表于 2009-6-4 14:16 | 显示全部楼层

SCL、SDA

SCL、SDA信号正常啊,寻址后PIC没有应答,应该是寻址的时候PIC没初始化完全,是不是遗漏了什么~~
龙紫枫 发表于 2009-6-4 14:59 | 显示全部楼层

硬件问题的可能性较大

咱用过16F737的硬件I2C做从机......不过是汇编写的。<br /><br />你看看SSP模块的说明,没置1,如果地址对了,估计就是硬件问题了
chengqing3968 发表于 2013-9-15 22:24 | 显示全部楼层
不会I2C的飘过!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部