打印
[STM8]

检测不到起始位

[复制链接]
375|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 | 只看该作者
没有配置好?

使用特权

评论回复
5
dingy| | 2020-5-20 22:38 | 只看该作者
硬件收发器?配置完全了吗

使用特权

评论回复
6
supernan| | 2020-5-20 22:40 | 只看该作者
换成模拟iic 试一下?

使用特权

评论回复
7
liuzaiy| | 2020-5-20 22:43 | 只看该作者

ST官方没有例子吗?

使用特权

评论回复
8
zyf部长| | 2020-5-20 22:45 | 只看该作者
还用模拟试试

使用特权

评论回复
9
kangzj| | 2020-5-20 22:48 | 只看该作者
I2C确实不好搞。

使用特权

评论回复
10
zwll|  楼主 | 2020-5-20 22:54 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
11
dongnanxibei| | 2020-5-20 23:30 | 只看该作者
官方的例子应该有的。

使用特权

评论回复
12
dongnanxibei| | 2020-5-20 23:31 | 只看该作者
我特别讨厌I2C ,优先选择SPI

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝