[STM8] STM8L101硬件I2C 检测不到起始位

[复制链接]
1859|10
 楼主| roshen007 发表于 2017-1-13 09:17 | 显示全部楼层 |阅读模式
我在调试I2C的时候,无法产生起始位我把代码贴出来大家看看!
I2C_Init(I2C_MAX_STANDARD_FREQ, 0x86,I2C_DutyCycle_2, I2C_Ack_Disable, I2C_AcknowledgedAddress_7bit);



UINT8 I2C_AM_Byte_Read(UINT8 device_address, UINT16 reg_add)

{

       UINT8 readdata,Temp;

       UINT8 add_H,add_L;

       add_H = reg_add>>8;

       add_L = reg_add & 0x00FF;

       while(I2C->SR3&0x02);//BUS EMPTY

       LED1ON;     



       //I2C_GenerateSTART(ENABLE);  

       I2C->CR2 |= 0x01;      //发送起始位

        //while(!(I2C->CR2&0x01)); 这句我注释掉了,但是不注释也过不去  手册上说是发送完成自动清0。 (数据手册说明:START: This bit is set and cleared by software and cleared by hardware when start is sent or PE=0.)

       while(!(I2C->SR1&0x01));//  等待起始发送完成,但是在这儿一直卡着过不去。    ( 数据手册说明:SB: Start Bit (Master mode)     0: No Start condition1: Start condition generated.)

       Temp = I2C->SR1;

        LED2ON;

       I2C_Send7bitAddress(device_address, I2C_Direction_Transmitter);

       while(!(I2C->SR1&0x02));//ADDR==1

       Temp = I2C->SR1;

       Temp = I2C->SR3;

      

       I2C_SendData(add_H);

       while(!(I2C->SR1&0x84));//TXE==1

       I2C_SendData(add_L);

       while(!(I2C->SR1&0x84));

      

      

       I2C_GenerateSTART(ENABLE);

       while(!(I2C->SR1&0x01));//SB==1

       I2C_Send7bitAddress(device_address, I2C_Direction_Receiver);

       while(!(I2C->SR1&0x02));//ADDR==1

       Temp = I2C->SR1;

       Temp = I2C->SR3;

       while(!(I2C->SR1&0x40));//RXE==1

       readdata = I2C_ReceiveData();

       I2C_GenerateSTOP(ENABLE);

}
SarahHXC 发表于 2018-9-5 11:42 | 显示全部楼层
楼主,一样的问题,求问解决了吗?
ZJJ!1002 发表于 2018-9-5 17:42 | 显示全部楼层
ST代理:  STM8,STM32 全系列单片机,可提供代理证。
项目选型和样品支持,针对技术上的问题MCU,且有专业FAE技术支持。
联系方式:159 1971 6087 QQ: 2850286350
598330983 发表于 2018-9-5 18:49 | 显示全部楼层
ST8官方没提供例子吗
dongnanxibei 发表于 2018-9-5 20:19 | 显示全部楼层
没有配置好?我去ST8官网,竟然没有例子
zhuomuniao110 发表于 2018-9-6 15:43 | 显示全部楼层
硬件收发器?配置完全了吗
chenqiang10 发表于 2018-9-6 15:52 | 显示全部楼层
换成模拟iic 试一下?
chenqiang10 发表于 2018-9-6 15:52 | 显示全部楼层
ST官方没有例子吗?
捉虫天师 发表于 2018-9-6 20:20 | 显示全部楼层
最讨厌ST8了,没有32好用。
木木guainv 发表于 2018-9-6 20:32 | 显示全部楼层
还用模拟试试
小灵通2018 发表于 2018-9-6 21:20 | 显示全部楼层
I2C确实不好搞。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

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