使用stm32f103+rt-thread1.1.0
使用硬件IIC控制器
应该是官方的i2c_ee代码 读取24LC02的
不挂总线直接测试的时候会卡死在
while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_MODE_SELECT));这句话上
挂上总线,将I2C1的PB6 PB7外接上拉电阻拉高之后,打开
#define RT_USING_I2C_BITOPS
#define RT_I2C_BIT_DEBUG
就能通过了……,这个还需要仔细研究
然后就是延时的事情了,太快了也不好使
尤其是read的时候,加点rt_kprintf语句反而好使了
IIC初始化的时候要注意需要下面的代码
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
I2C_InitTypeDef I2C_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* Configure I2C1 pins: SCL and SDA */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* I2C configuration */
I2C_InitStructure.I2C_Mode =