00. 目录文章目录00. 目录01. IIC简介02. 功能描述03. 硬件模块04. 软件设计05. 结果验证06. 附录07. 声明01. IIC简介IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。I2C 总线在传
原创
2021-09-02 14:26:40
1901阅读
00. 目录文章目录00. 目录01. IIC简介02. 功能描述03. 硬件模块04. 软件设计05. 结果验证06. 附
原创
2022-03-16 14:16:52
1553阅读
我们了解了I2C的操作流程,这一篇,我们就使用I2C,来对EEPROM进行操作吧。我们做两种选择:1.时序由IO口模拟高低电平,需要了解协议并按照协议操作相应的IO口。2.时序由硬件自行产生,不需要人工干预;由硬件产生的I2C时序,我们借助Stm32Cube配置实现便可,我们这一篇,抛开Stm32Cube,手撕代码,根据I2C的时序,一步步地实现I2C对EEPROM的读写吧。 我们分为几
STM32的 I2C 片上外设专门负责实现 I2C 通讯协议, 只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU 只要检测该外设的状态和访问数据寄存器,就能完成数据收发。架构图如下所示。通讯引脚:STM32 芯片有多个 I2C 外设,外设的 I2C 通讯信号引出到不同的 GPIO 引脚上,使用I2C时须配置这些指定的引脚。时钟控制逻辑:SCL 线的时钟信号,由 I2
转载
2023-07-18 17:48:48
364阅读
STM32——I2C通信配置I2C的系统框架1、通讯引脚2、时钟控制逻辑3、数据控制逻辑4、整体控制逻辑通信过程写入过程读取过程I2C代码配置I2C的初始化结构体几个重要的函数 既上一篇文章对I2C的理论分析、讲解。基本原理已经大致了解了。本文就以I2C在stm32上的系统框架图的分析、讲解和对I2C的代码配置。 基于平台:STM32F407ZG
参考资料:STM32f4参考手册、STM32f
转载
2024-01-21 20:15:47
15阅读
/** ****************************************************************************** * @file i2c simu.c * @brief simulation function * @CPU STM32F051 * @compiler Keil uVision V4.74
转载
2015-07-09 19:21:00
228阅读
2评论
在stm32f103上解决硬件I2C总是busy的问题问题在使用stm32f103的硬件I2C的时候,读写I2C总线总是busy,即下面的代码总是无法退出: while (I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY)) { ; }解决方法在将io管脚复用成I2C之前,先作为输出GPIO管脚,然后拉高,即下面代码里的i2c_pin_init,并且在每次读写的时候都调用一次i2c_pin_init,代码如下:#include "
原创
2021-05-26 21:32:46
2180阅读
00. 目录文章目录00. 目录01. I2C简介02. I2C主要特性03. I2C功能说明0器 2 (I2C_OAR2)5.5 I2C 数据寄存器 (I2C_DR)5.6 I2C 状态寄存器 1 (I2C_SR1)5.7 I2C 状态寄存器 2 (I2C_SR2)5.
原创
2022-03-16 14:17:38
1294阅读
00. 目录文章目录00. 目录01. I2C简介02. I2C主要特性03. I2C功能说明04. I2C中断05. I2C相关寄存器5.1 I2C 控制寄存器 1 (I2C_CR1)5.2 I2C 控制寄存器 2 (I2C_CR2)5.3 I2C 自有地址寄存器 1 (I2C_OAR1)5.4 I2C 自有地址寄存器 2 (I2C_OAR2)5.5 I2C 数据寄存器 (I2C_DR)5.6 I2C 状态寄存器 1 (I2C_SR1)5.7 I2C 状态寄存器 2 (I2C_SR2)5.
原创
2021-09-02 14:26:41
1510阅读
最近做一个IPC的项目,其中用了海思的一套解决方案,用Hi3518e作为主芯片,上面搭载嵌入式linux系统。由于可行性验证阶段,没有做芯片级,而是先从系统级做起,用了一块已经移植好linux系统,带有网络文件系统服务的板子,该板子是专用于rtsp视频传输的,预留的引脚是在太少,只有两个用于IRCUT的引脚,而我们不仅仅需要rtsp服务,还需要在rtsp视频流中加入九轴陀螺仪的数据一起提供给上位机
转载
2024-07-22 16:27:44
92阅读
19.1 关于I2C19.1.1 I2C 协议I²C(Inter-Integrated Circuit),常读作“I方C”,它是一种多主
原创
2023-07-03 10:34:01
1100阅读
使用stm32cubemx生成硬件I2C的代码
不过自动生成的代码,调用HAL_I2C_XXX的API工作不正常,返回错误代码为I2C_BUSY
使用STM32的I2C接口使用时需要注意很多细节,不过HAL库中官方已经为用户根据这些细节做了处理,可以直接使用。不过这个I2C代码并不稳定,有些板子可以用,另一些则出错.出错现象为调用HAL_I2C的API时,返回I2C_BUSY查看寄存器 BUSY位
转载
2024-03-21 22:11:17
767阅读
开发中经常与i2c打交道,芯片中自带的硬件i2c控制器使用起来并不是很灵活,而且要研究半天的寄存器。所以干脆搞一个软件模拟gpio的通用代码,移植起来也方便,使用灵活具体代码如下:#include <linux/module.h>#include <linux/config.h>#include <linux/errno.h>#include <linux/miscdevice.h>#include <linux/fcntl.h>#include <linux/init.h>#include <linux/delay
转载
2013-06-13 20:53:00
250阅读
一、看电路图1、要得知那些信息从电路图上主要是要知道3点关键信息I2C设备挂载在I2C1、I2C2、I2C3的哪一个总线上SDA、SCL接的是哪两个GPIOI2C设备地址(有的是可以选择的,比如这个EEPROM)2、挂在哪个I2C总线以及哪个GPIO从电路图上可以看出:挂载在I2C1上的SDA接的是PB7引脚SCL接的是PB6引脚这个一般硬件工程师都会在电路图上标出来吧。另外如果只标出
转载
2024-10-12 17:06:10
282阅读
目录I2C协议1. 空闲状态2. 开始信号3. 停止信号4. 应答信号ACK5. 数据的有效性6. 数据传输I2C的实现IIC_InitII2_STARTIIC_StopIIC_Wait_AckIIC_AckIIC_NAckIIC_Send_ByteIIC_Read_Byte通过I2C操作24C02初始化写一个字节读一个字节写入读出多个地址I2C,两线式串行总线,可发送和接收数据SCL和SDA都必...
原创
2022-04-15 11:35:22
984阅读
在Linux系统中,GPIO(General Purpose Input/Output)是一种用于管理硬件设备的接口。而I2C(Inter-Integrated Circuit)是一种用于连接多个设备的串行通信协议。在实际开发中,有时候我们需要使用GPIO来模拟I2C接口,以实现设备之间的通信。
为了在Linux系统中实现GPIO模拟I2C,我们首先需要了解GPIO和I2C的基本原理。GPIO通
原创
2024-05-15 11:31:19
286阅读
该程序可以作为gpio模拟i2c程序的参考。不同的平台,函数实现不同,但是i2c通信的时序和原理是相同的。希望对一些朋友有帮助。复制代码1#include<linux/init.h>2#include<linux/module.h>3#include<linux/kernel.h>4#include<linux/sched.h>5#include&l
转载
2018-04-13 10:03:49
6160阅读
假设硬件电路如下图EEPROM芯片的设备地址一共有 7 位,其中高 4 位固定为:1010 b,低 3 位则由 A0/A1/A2 信号线的 电平决定,图中的 R/W是读写方向位,与地址无关。按照我们此处的连接,A0/A1/A2均为0,所以EEPROM的7位设备地址是:101 0000b , 即 0x50。由于 I2C 通讯时常常是地址跟读写方向连在一起构成一个 8 位数,且当 R/W 位为 0 时
* * * Description: * ------------ * Use GPIO simulate I2C interface. *
原创
2023-05-19 08:59:22
237阅读
1、先调试gpio,sda scl 看看是否能正常输出,然后在分别产生方波,看看波形对不对 2、模拟生成i2c 的 start stop 信号,用分析仪抓取,看看是否正常。 由于start产生的条件是: SCL为高电平时,SDA由高变低。 所以分析仪可以设置成sda 下降沿触发。 3、注意模拟函数写
转载
2021-03-01 14:51:00
334阅读
2评论