首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
iic专题
【STM32+HAL库】---- 硬件IIC驱动0.96OLED
硬件开发板:STM32G0B1RET6软件平台:cubemax+keil+VScode 内容原著声明 代码借鉴学习于以下文章: STM32 使用硬件IIC驱动0.96寸4针IOLED显示器(HAL库) 1 新建cubemax工程 1.1 配置系统时钟RCC 1.2 配置引脚 1.3 导出工程 略… 2 代码 2.1 OLED_IIC_Config.h /*** **
阅读更多...
STM32 IIC
第一块:介绍协议规则,然后用软件模拟的形式来实现协议, 第二块:介绍STM32的IIC外设,然后用硬件来实现协议 因为IIC是同步时序的额,软件模拟协议也非常方便,像我们单片机一样,外挂芯片里的众多外设也是通过读写寄存器来控制运行的,寄存器本身也是存储器的一种,,这个芯片多有的寄存器也是都被分配到了一个线性的存储空间,如果我们想要读写寄存器来控制硬件电路,我们就至少需要定义两个字节数据,一个字节
阅读更多...
Linux-IIC驱动(3)-IIC用户态驱动程序设计
之前已经说过,有2种i2c驱动程序的设计,比如说针对EEPROM的驱动程序。我们可以专门编写一个针对EEPROM的驱动程序。另一种方式就是通过i2c-dev,即通过i2c通用通用驱动,来编写一个应用程序,来完成对设备的控制。 我们现在就来实现i2c用户态驱动程序的设计。 通用设备驱动分析 首先需要分析i2c-dev,先打开i2c-dev.c这个文件,找到i2c_dev_init函
阅读更多...
Linux-IIC驱动(2)-Linux下IIC子系统的介绍
IIC子系统架构 Linux下IIC的架构模型大概可以分为3层: 第一层是IIC的从设备驱动,他包含图中的device driver和i2c-dev。device driver需要用户编写,i2c-dev由内核实现,包含了IIC设备的通用方法,但是用户不能直接使用这个驱动,需要编写一个用户层驱动,它们2个合起来才可以实现一个驱动程序。 第二层总线驱动,他又叫做控制器驱动
阅读更多...
Linux-IIC驱动(1)-IIC总线介绍
IIC我在很久之前就接触并使用过了,现在来回顾一下它的硬件结构和时序 硬件结构 I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。硬件结构如下: I2C总线只有两根双向信号线。 SDA: Serial Data Line-数据线 SCL :Serial Clock-时钟线 I2C总线
阅读更多...
三、IIC总线协议——2、AT24C02
一、AT24C02介绍 EEPROM是一种掉电后数据不丢失的储存器,常用来存储一些配置信息,在系统重新上电时就可以加载。 AT24C02是一个2K bit的EEPROM存储器,使用IIC通信方式。 A0/1/2 : 设备地址决定引脚。、 WP : 写保护引脚。 SCL : 时钟线。 SDA
阅读更多...
57.基于IIC协议的EEPROM驱动控制(4)
(1)顶层代码: module IIC_EEPROM(input wire clk ,input wire reset_n ,input wire key_r ,input wire key_w ,output
阅读更多...
Xilinx FPGA Microblaze AXI_IIC使用方法及心得
Xilinx FPGA Microblaze AXI_IIC使用方法及心得 前言 本着好好学习,认真负责的态度,我计划在空闲时间把自己用到的一些模块的使用方法与心得总结下与大家分享下,技术交流的同时共同进步,如有问题,欢迎批评指正! 本次先着重讲下AXI_IIC核的使用,后续还会包括以下模块 UART_AXI核使用及AXI总线详解QSPI_AXI核的使用AXI_DMA与AXI_FIFO使用,
阅读更多...
Linux驱动学习之IIC(驱动BH1750)
Linux内核IIC底层驱动,厂家已经写好了,我们需要做的是,修改设备树,调用他的驱动,添加我们设备的信息(在设备树中添加节点),对于初学者来讲,linux驱动学习最重要的不是学习linux内核,而是对设备树的学习(后面会出专题),可以说学会设备树规则,就已经成功了一办,剩下的就是了解API接口。 在设备树中添加设备节点 在根节点外修改I2C节点 (&+标签名==追加)原节点没有的会追
阅读更多...
小实战项目-第二章2.3软件IIC 硬件IIC讲解 STM32 IIC通讯协议讲解
这篇章我们说明硬件IIC,软件IIC和相关基础知识在这文章里面 添加链接描述 https://blog.csdn.net/qq_46187594/article/details/141642801 2.3-硬件I2C 我们还使用第0章的工程 初始化硬件IIC 设置串口,方便输出调试 重映射 /*** @brief 重定向printf (重定向fputc),使用时候记得勾选
阅读更多...
55.基于IIC协议的EEPROM驱动控制(2)
升腾A7pro的EEPROM芯片为24C64芯片,器件地址为1010_011。 (1)Visio整体设计视图(IIC_SCL为250KHz,IIC_CLK为1MHz,addr_num为1,地址字节数为2字节,addr_num为0,地址字节数为1字节): (2)IIC_ctrl模块状态转移图: (3)按键消抖模块代码及注释解析: module key_
阅读更多...
【STM32】RTT-Studio中HAL库开发教程六:IIC通信--GZP6877D气压传感器
文章目录 一、简介二、寄存器操作三、硬件IIC通信四、模拟IIC通信五、测试验证 一、简介 GZP6877D 型压力传感器采用 SOP6 封装形式,倒钩管的设计可以保证安装的密封性。内有封装的压力传感器与信号调理芯片,对传感器的偏移、灵敏度、温漂和非线性进行数字补偿。采用 24 位 ADC,并且调理芯片内置温度传感器,可以输出高精度的压力值和温度值。同时提供 IIC 通讯协
阅读更多...
IIC总线仲裁机制
IIC总线仲裁机制与CAN总线极为相似总的来说就三个机制,线与机制,回读机制,低电平优先机制(显性电平优先机制); 什么是总线仲裁 总线上可能在某一时刻有两个主控设备要同时向总线发送数据,这种情况叫做总线竞争。 IIC总线仲裁 I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的: 假设主控器1要发送的数据DATA1为“101 ……”;主控器2要
阅读更多...
笔记 6 : 彭老师课本第 5 章 ,举例分析 IIC 编程,以及开启和配置虚拟机
(60) 首先看 IIC 的陀螺仪的底板图,board 图: 以 GYRO_INT 为例去查找其对应的控制器: ++ ++ 继续查找 I2C_SCL5 以及 I2C_SDA5 : ++ ++ ++ MPU6050 以及比较复杂,需要查看其手册,全英文版: 再补充一幅图: 以上与 led 举例了电路图的查看。别的例子可能更复杂或更简单。 (61)
阅读更多...
通讯协议大全(UART,RS485,SPI,IIC)
参考自: 常见的通讯协议总结(USART、IIC、SPI、485、CAN)-CSDN博客 UART那么好用,为什么单片机还需要I2C和SPI?_哔哩哔哩_bilibili 5分钟看懂!串口RS232 RS485最本质的区别!_哔哩哔哩_bilibili 喜欢几位博主老师老师的还请看原贴/原视频 数据通信 数据通信是指通过某种传输媒介(如电线、光纤、无线电波
阅读更多...
【GD32F303红枫派使用手册】第二十二节 IIC-IIC OLED显示实验
22.1 实验内容 通过本实验主要学习以下内容: OLED驱动原理 IIC驱动OLED显示操作 22.2 实验原理 OLED模块的驱动芯片为SSD1306,其显存大小总共为 128*64bit 大小,SSD1306 将这些显存分为了 8 页,其对应关系如下所示: SSD1306 的命令比较多,这里我们仅介绍几个比较常用的命令,这些命令如下所示: 我们再来介绍一下 OLED
阅读更多...
IIC总结
IIC特性 IIC是双线双向的同步串行总线。连接到总线上的器件都有唯一的地址,任何器件既可以作为主机也可以作为从机,但是同一时刻只允许有一个主机I2C标准是一个具有冲突检测机制和仲裁机制的真正意义上的多主机总线,它能在多个主机同事请求控制总线时利用仲裁机制避免数据冲突并保护数据 IIC协议描述 IIC总线使用连接设备的SCL(串行时钟总线)和SDA(串行数据总线)来传送信息。主机在SCL线上
阅读更多...
Linux驱动开发笔记(九)IIC子系统及其驱动
文章目录 前言一、IIC驱动框架二、总线驱动2.1 iic总线的运行机制2.2 重要数据结构2.2.1 i2c_driver结构体2.2.2 i2c总线结构体 2.3 匹配规则 三、设备树的修改四、设备驱动的编写4.1 相关API函数4.1.1 i2c_add_adapter( )4.1.2 i2c_register_driver( )4.1.3 i2c_transfer( )4.1.4 i
阅读更多...
u8g2 使用IIC驱动uc1617 lcd有时候某些像素显示不正确
折腾了很久,本来lcd是挂载到已经存在的iic总线上的,总线原来是工作正常的,挂载之后lcd也能显示,但是有时候显示不正确,有时候全白的时候有黑色的杂点。 解决方案: 1.最开始以为是IIC总线速度快,降低iic总线速度效果不明显 2.参考示例,把iic连续发数据改成单次一个字节发送,有效果,但是还是有错误的地方 3.分析可能传输的数据接收可能有错误,将iic电路中上拉电阻默认的10K改成
阅读更多...
代码增进对IIC的理解
我看了一下,写的确实不错,基于51的 #include<reg52.h> #define uchar unsigned char sbit sda=P2^0; sbit scl=P2^1; //用单片机的两个I/O口模拟I2C接口 uchar a; *************************************************
阅读更多...
IIC总线概况说明
IIC总线,是INTER-IC串行总线的缩写。INTER-IC原文大意是用于相互作用的集成电路,这种集成电路主要由双向串行时钟线SCL和双向串行数据线SDA两条线路组成,由荷兰菲利浦公司于80年代研制开发成功。 IIC总线在传送数据时其速率可达100kbps,最高速率时可达400kbps,总线上允许连接的设备数主要决定于总线上的电容量,一般设定为400pF以下。I2C总线主要在微处理器的控
阅读更多...
ARM32开发--IIC时钟案例
知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 需求 开发流程 移植驱动 修改I2C实现 测试功能 总结 前言 在现代嵌入式系统开发中,移植外设驱动并测试其功能是一项常见的任务。本次学习的目标是掌握移植方法和测试方法,以实现对开发板中的PCF8563实时时钟(RTC)的设置和读取功能。通过以下开发流程,我们将逐步完成移植驱动、修改I2C实现以及测试功
阅读更多...
ARM32开发--IIC软实现
知不足而奋进 望远山而前行 目录 文章目录 前言 开发流程 GD32F4软件I2C初始化 GD32F4软件I2C引脚功能 写操作 读操作 总结 前言 在嵌入式系统开发中,软件实现的I2C通信协议扮演着至关重要的角色。本文将深入探讨如何在GD32F4系列微控制器上实现软件I2C功能,涵盖了引脚初始化、功能定义以及读写操作的详细步骤和代码示例。 开发流程 引脚初始
阅读更多...
硬件IIC和软件IIC的比较
(一)硬件IIC 硬件IIC是由STM32内部的硬件模块实现的,使用CPU的时钟信号来控制数据传输和时序,通信速度较快,可以达到几十MHz的速度。硬件IIC的实现相对简单,无需编写复杂的代码,因此在实现IIC通信时,硬件IIC通常是首选的方式。硬件IIC的主要优点有: 1、速度快,可以实现高速通信; 2、实现简单,无需编写复杂的代码; 3、稳定性好,不容易出现通信错误。
阅读更多...
IIC总线协议讲解
1. I2C总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,表示START。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,表示STOP。 应答信号:接收数据的Slave在接收到8bit数据后,向发送数据的Master发出特定的低电平脉冲,表示已收到数据。 2. I2C位传输 数据传输:SCL为高电平时
阅读更多...
STM32 IIC 使用 HAL 库操作eeprom
在STM32上通过I2C接口(注意:在标准STM32库中,I2C接口通常被写为"I2C"而不是"IIC")与EEPROM芯片通信时,你需要遵循I2C通信协议,并使用STM32的HAL库或标准外设库(如果适用)中的函数。 下面是一个简化的示例代码,展示了如何使用STM32的HAL库通过I2C接口与EEPROM(假设是24LC系列,通常起始地址是0xA0或0xA2,这取决于特定的EEPROM芯片和配
阅读更多...