STM32单片机硬件I2C驱动程序(查询方式)

本文档详细介绍了如何在STM32单片机上使用硬件I2C寄存器,通过查询方式实现数据的发送与接收。程序重点在于利用I2C寄存器的状态检查来控制数据传输流程。
摘要由CSDN通过智能技术生成





本文章原始地址:http://feotech.com/?p=69




本程序主要用于驱动STM32单片机芯片的硬件I2C寄存器,实现通过使用芯片自带的I2C寄存器进行数据的发送与接收.
本例程中采用I2C寄存器查询的方式来实现数据传输,当I2C对应寄存器指定状态时方可执行下一步操作.

/**
  ******************************************************************************
  * @file    Hardware_I2C.c 
  * @author  Ryan Zhao
  * @version V1.0.0
  * @date    2017-04-27
  * @brief   STM32硬件I2C底层驱动.
  ******************************************************************************
  * @attention   Null
  * 
  ******************************************************************************
  */



/**
* @brief  I2C引脚与寄存器功能配置.
* @param  None.
* @retval None.
*/
void I2C_Configuration(void)
{
  /*GPIO与IIC初始化结构体*/  
  GPIO_InitTypeDef GPIO_InitStructure;  
  I2C_InitTypeDef I2C_InitStructure;  

  /*GPIO与IIC时钟使能*/  
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );     //GPIOB时钟使能  
  RCC_APB1PeriphClockCmd( RCC_APB1Periph_I2C1, ENABLE );      //I2C时钟使能  

  /*初始化GPIO*/  
  GPIO_InitStructure.GPIO_Pin =  HW_I2C_SDA_PIN | HW_I2C_SCL_PIN;   //初始化 IIC GPIO 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //最高输出速度50Hz  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;     //输入输出模式为复用功能开漏输出  
  GPIO_Init( GPIOB, &GPIO_InitStructure );            //根据GPIO初始化结构体初始化GPIOB  

  /*初始化I2C*/  
  I2C_InitStructure.I2C_Mode = I2C_Mode_I2
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值