[STM8] 检测不到起始位

[复制链接]
611|11
 楼主| zwll 发表于 2020-5-20 22:20 | 显示全部楼层 |阅读模式
STM8L101硬件I2C 检测不到起始位
chenho 发表于 2020-5-20 22:23 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| zwll 发表于 2020-5-20 22:27 | 显示全部楼层

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);

}
llljh 发表于 2020-5-20 22:32 | 显示全部楼层
没有配置好?
dingy 发表于 2020-5-20 22:38 | 显示全部楼层
硬件收发器?配置完全了吗
supernan 发表于 2020-5-20 22:40 | 显示全部楼层
换成模拟iic 试一下?
liuzaiy 发表于 2020-5-20 22:43 | 显示全部楼层

ST官方没有例子吗?
zyf部长 发表于 2020-5-20 22:45 | 显示全部楼层
还用模拟试试
kangzj 发表于 2020-5-20 22:48 | 显示全部楼层
I2C确实不好搞。
 楼主| zwll 发表于 2020-5-20 22:54 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
dongnanxibei 发表于 2020-5-20 23:30 | 显示全部楼层
官方的例子应该有的。
dongnanxibei 发表于 2020-5-20 23:31 | 显示全部楼层
我特别讨厌I2C ,优先选择SPI
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

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