stm32硬件-IIC/I2C

本文详细介绍了STM32进行IIC/I2C通信的硬件配置,包括上拉电阻和EEPROM24c02的选择,以及软件配置的GPIO复用开漏模式和主机模式。在读写流程部分,讲解了如何写入和读取一个字节、数组,以及从PROM读取数组的步骤,特别强调了在读取过程中防止复位死锁的注意事项。
摘要由CSDN通过智能技术生成

提示:硬件IIC/I2C 调试心得



提示:以下是本篇文章正文内容,下面案例可供参考

一、硬件配置

  1. 上拉 2.2k 电阻
  2. EEPROM24c02
  3. stm32 ze

二、软件配置

  1. GPIO 复用开漏模式
  2. IIC/I2C 主机模式

三、读写流程

  1. 写一个字节;
  2. 读一个字节 ;
  3. 写一个数组;
  4. 读一个数组;
    note: 细节写在函数下面了

1.头文件

head file :

#ifndef  _BSP_I2C_H
#define  _BSP_I2C_H

#include "stm32f10x.h"

/**************** device macro **************/
#define    EEPROM_ADDR            0xA0

#define    ArrayLength(Array)   (sizeof(Array)/sizeof(Array[0]))
/**************** GPIO Config raw macro **************/
#define    mI2Cx                  I2C1
                                
#define    freq                   400000
#define    ownAddr                0x7f

#define    I2C1_Periph_PORT       GPIOB 

#define    I2C1_SCL_PIN           GPIO_Pin_6
#define    I2C1_SDA_PIN           GPIO_Pin_7

#define    I2C1_GPIO_CLK_Cmd      RCC_APB2PeriphClockCmd
#define    I2C1_GPIO_PORT_CLK     RCC_APB2Periph_GPIOB

#define    I2C1_CLK_Cmd           RCC_APB1PeriphClockCmd
#define    I2C1_PORT_CLK          RCC_APB1Periph_I2C1
/**************** GPIO Config end **************/
/****************   I2C function    **************/
void EE_I2C_SendByte(uint8_t dataAddr,uint8_t byte);
uint8_t EE_I2C_ReceiveByte(uint8_t dataAddr);
/* attention:  only write 8byte */          
void EE_I2C_SendArray(uint8_t dataAddr,uint8_t *data,uint8_t txBufSize);
void EE_I2C_ReadArray(uint8_t dataAddr,uint8_t *data,uint8_t bufSize);
//wait for write complete
void EEPROM_WaitForWriteEnd(void);
void bsp_I2C_Config(void);
#endif /* _BSP_I2C_H */

note: 头文件不做赘述


2.源文件

source file: GPIO / IIC 配置

/*  version: 1.0
 *  auther : ylb
 *  date   : 2022.3.27
 *  purpose: hardware IIC  
 */ 
 /*************   pravate  include       ***********/
 
#include "bsp_I2C.h"
#include "bsp_rgb_led.h"
#include "bsp_us
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值