OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4290|回复: 11

stm8 硬件iic 从机无法接受数据

[复制链接]

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2015-1-12
在线时间
65 小时
发表于 2015-12-26 16:21:32 | 显示全部楼层 |阅读模式
stm8 硬件iic 从机无法接受数据,接受到地址,并且已应答,
void  IIC_GPIO_INIT()
{
/*  配置IIC的IO口  为上拉输入*/
  //CLK->PCKENR1 |=0X01;
  GPIOB->DDR &= ~0x30;
  GPIOB->CR1 |= 0x30;
  GPIOB->CR2 &= ~0x30;
  
}
void IIC_INIT(void)
{
  
  I2C->CR1 = 0x00;
  I2C->CR2 =0x04; //使能应答            
  I2C->FREQR = 0x10; // Set I2C Freq value (16MHz)
  
  I2C->OARH |= 0x40;
  I2C->OARL = (SLAVE_ADDRESS );
  I2C->CR1 = 0x01;
  I2C->CR2   = 0X04;
  I2C->CR2  |= 0x02;
  
  I2C->ITR |= 0x07; //开启中断

  


}

/**
  * @brief I2C Interrupt routine.
  * @param  None
  * @retval None
  */
INTERRUPT_HANDLER(I2C_IRQHandler, 19)
{
  uint8_t temp1=0;
  uint8_t temp2=0;
  temp1=I2C->SR1;
  temp2=I2C->SR3;
  uint8_t data;
    if((I2C->SR1 & 0X02)==0x02) // 判读地址是否匹配
    {
     
      I2C->CR2 |= 0X04;
      I2C->SR1&=~(0x04);
    }
    if((I2C->SR1&0x10)==0x10)    //检测到停止位
    {
      temp1 = I2C->SR1;
      I2C->CR2|=0x04;  
     
    }
    if((I2C->SR1&0x40) == 0x40)    //接收数据
    {
       data= I2C->DR;
      if(IIC_RX_Finish==0)
      {
        IIC_RecBuffer[IIC_RX_NUM]=data;
        IIC_RX_NUM++;
        if(IIC_RX_NUM>=1){IIC_RX_Finish=1;IIC_RX_NUM=0; I2C->ITR = 0x00;}
        I2C->CR2 |= 0X04;//应答
      }
   }
}

这是

这是
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165047
金钱
165047
注册时间
2010-12-1
在线时间
2102 小时
发表于 2015-12-26 20:01:14 | 显示全部楼层
凡是求助帖发分享帖的一律不回答。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2015-1-12
在线时间
65 小时
 楼主| 发表于 2015-12-26 22:33:11 | 显示全部楼层
没注意,选错了。马上改
回复 支持 反对

使用道具 举报

10

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-6-1
在线时间
2 小时
发表于 2016-1-8 10:04:06 | 显示全部楼层
你好,还在研究st8做IIC从机吗?最近我也在研究,求指教啊。
回复 支持 反对

使用道具 举报

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2015-1-12
在线时间
65 小时
 楼主| 发表于 2016-1-19 21:15:06 | 显示全部楼层
who_who 发表于 2016-1-8 10:04
你好,还在研究st8做IIC从机吗?最近我也在研究,求指教啊。

什么问题
回复 支持 反对

使用道具 举报

10

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-6-1
在线时间
2 小时
发表于 2016-1-26 14:20:34 | 显示全部楼层

有测试好的例子程序么,stm8从机的例子。
能否发我邮箱一份 zhuimengcanyang@163.com
最近在搞这个,头大了。
回复 支持 反对

使用道具 举报

7

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2015-11-14
在线时间
98 小时
发表于 2016-1-26 15:57:26 | 显示全部楼层
who_who 发表于 2016-1-26 14:20
有测试好的例子程序么,stm8从机的例子。
能否发我邮箱一份
最近在搞这个,头大了。

百度文库所搜“软件模拟IIC主从机”
敢想敢为,敢做敢当。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-2-22
在线时间
0 小时
发表于 2016-2-22 22:41:27 | 显示全部楼层
我是来打酱油的,路过, 印度神油,弥漫之夜,需要的加我,((微信xc2013qq))
回复 支持 反对

使用道具 举报

4

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-30
在线时间
9 小时
发表于 2016-3-31 20:02:48 | 显示全部楼层
我最近也搞这个,卡住了
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2016-4-5
在线时间
32 小时
发表于 2016-4-5 15:48:24 | 显示全部楼层
楼主的问题解决了吗?我现在只能地址匹配正确,数据接收一直进不去中断
回复 支持 反对

使用道具 举报

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2015-1-12
在线时间
65 小时
 楼主| 发表于 2016-8-28 10:14:38 | 显示全部楼层
who_who 发表于 2016-1-8 10:04
你好,还在研究st8做IIC从机吗?最近我也在研究,求指教啊。

什么问题
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-3-1
在线时间
1 小时
发表于 2016-9-6 19:40:32 | 显示全部楼层
有没有大神玩过STM8的400KIICSALVE,跪求
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-29 05:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表