初级会员

- 积分
- 51
- 金钱
- 51
- 注册时间
- 2014-12-16
- 在线时间
- 6 小时
|

楼主 |
发表于 2016-10-27 14:03:03
|
显示全部楼层
本帖最后由 abcdef_30705 于 2016-10-27 14:04 编辑
感谢回答
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;//SCL
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//SDA
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD ; //改成开漏,上拉电阻4.7K
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
//IO方向设置PB7
#define SDA_IN() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=8<<28;}
#define SDA_OUT() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=3<<28;}
现在能应答,能正常读写数据, |
|