以stm32和oled通信为例配置硬件iic

void I2C_Configuration(void)
{

    I2C_InitTypeDef   I2C_InitStructure;
    GPIO_InitTypeDef   GPIO_InitStructure;
	
	 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ,  ENABLE);
   RCC_APB1PeriphClockCmd( RCC_APB1Periph_I2C1, ENABLE );
	
	//PB6 --SCL ;PB7 --SDA
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_OD;
	GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_6 | GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed =  GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

	
  I2C_DeInit(I2C1);
  I2C_InitStructure.I2C_Ack  =  I2C_Ack_Enable;
	I2C_InitStructure.I2C_AcknowledgedAddress =  I2C_AcknowledgedAddress_7bit;
	I2C_InitStructure.I2C_ClockSpeed = 400000 ; 
	I2C_InitStructure.I2C_DutyCycle  = I2C_DutyCycle_2 ;
	I2C_InitStructure.I2C_Mode =  I2C_Mode_I2C;
	I2C_InitStructure.I2C_OwnAddress1 = 0X30 ;
	I2C_Init(I2C1,&I2C_InitStructure );
  I2C_Cmd(I2C1,ENABLE);

}

void I2C_WriteByte(uint8_t addr,uint8_t data)
{

    while (I2C_GetFlagStatus(I2C1,  I2C_FLAG_BUSY));  //¼ì²éI2C×ÜÏßÊÇ·ñ·±Ã¦
	
    I2C_GenerateSTART(I2C1,  ENABLE);                //¿ªÆôI2C1
    while( !I2C_CheckEvent(I2C1,  I2C_EVENT_MASTER_MODE_SELECT)); //EV5,Ö÷ģʽ
	
	 I2C_Send7bitAddress(I2C1,OLED_ADDRESS, I2C_Direction_Transmitter); //·¢ËÍÆ÷¼þµØÖ·
	 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

	 I2C_SendData(I2C1,  addr);   //¼Ä´æÆ÷µØÖ·
   while(!I2C_CheckEvent(I2C1,  I2C_EVENT_MASTER_BYTE_TRANSMITTING));

	I2C_SendData(I2C1,  data);   //·¢ËÍÊý¾Ý
	 while(!I2C_CheckEvent(I2C1,  I2C_EVENT_MASTER_BYTE_TRANSMITTING));

  I2C_GenerateSTOP( I2C1,  ENABLE); //¹Ø±ÕI2C×ÜÏß


}
//дÃüÁî
void WriteCmd(unsigned char I2C_Command)
{
  
   I2C_WriteByte(0X00,I2C_Command);


}
//дÊý¾Ý
void WriteDat(unsigned char I2C_Data)
{

   I2C_WriteByte(0x40,I2C_Data);


}

硬件iic 的通信速率较快,但配置使用繁琐,个人推荐模拟iic

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值