1.10.5_I2C_I2C控制器编程_中断_P

发布者:MysticDreamer最新更新时间:2021-08-18 来源: eefocus关键字:I2C  I2C控制器  编程  中断 手机看文章 扫描二维码
随时随地手机看文章

中断程序是I2C控制器核心和核心,ACK的确认就是在中断程序中完成的。


中断的处理流程时通过2440的相关流程图和AT24cxx的数据结构来完成的。


下图是2440 IIC控制器处于Transmitter模式的流程图和AT24cxx写数据的结构体图。

在这里插入图片描述
在这里插入图片描述

由发送函数开启发送。

对于第一个中断,发送的是地址,如果没有收到ACK,说明设备不存在,则直接停止传输。如果有数据,则正常进行写操作,直到数据都写完。

在这里插入图片描述
在这里插入图片描述

读数据的流程图也类似。

在这里插入图片描述

同样是从一个读函数开启。

在这里插入图片描述

然后在中断函数中处理,第一个也是设备地址,没有ack则表示无设备,需要停止传输,如果有,则恢复IIC传输。

在这里插入图片描述

不是第一次中断,那么表示收到一个新数据,将收到的新数据放到buf,然后恢复传输,如果收完了,则停止传输然后再恢复传输。

在这里插入图片描述

关键字:I2C  I2C控制器  编程  中断 引用地址:1.10.5_I2C_I2C控制器编程_中断_P

上一篇:1.10.4_I2C_I2C控制器编程_框架_P
下一篇:1.10.6_I2C_EEPROM编程和测试代码_P

推荐阅读最新更新时间:2024-11-06 03:39

超声波测距电路+汇编程
我现在在做超声波测距,用的是非门 + CX20106A方案。发射部分用非门驱动,如下: (原文件名:超声波发射电路原理图.gif) 我手上没有74ALS04或74LS04,所以用74HC04和HCF4069UBE代替。 超声波接收采用CX20106A,如下: (原文件名:接收电路 .jpg) 我用的CX20106A是拆机件。 用万用板搭好电路之后,在网上找到了一些参考汇编程序,我修改后可以通过串口发到PC显示超声波往返的时间: ;/////////////////////////////////////////////////////// ; USE BY :超声波测距器
[单片机]
超声波测距电路+汇<font color='red'>编程</font>序
STM8s(4) 外部中断EXTI初始化
其中中断 0,1,2,3,4 分别 对应端口 A,B,C,D,E // 中断初始化 void EXIT_Init(void) { PD_DDR &= 0 4; // 1 -- 输出;0 -- 输入 PD_CR1 |= 1 4; // 1 -- 上拉;0 -- 浮空 PD_CR2 |= 1 4; // 1 -- 外部中断开;0 -- 外部中断关 EXTI_CR1 |= 0x00; // 触发方式 EXTI_CR2 |= 0x00; // 触发方式 } asm( rim ); // 开总中断 // 中断服务函数 #pragma vector = EXTI3_vector __interrupt void
[单片机]
BMW轿车音响I2C总线控制多路音源电路
  宝马(BMW)轿车配装的数字式高级汽车音响根据配置和要求不同而不一样,大多属于CCR系列类,主要有CCR-800系列、CCR-610系列、CCR-690系列、CCR-890系列等。这些系列的产品基本电路大致相同,基本功能大同小异,有的仅是功能有所增加或不同,使用的元器件不一样,本文主要介绍基本电路中的I2C总线控制多路音源电路。(以CCR-800DH型音响为例)。   宝马(BMW)轿车数字式高级音响I2C总线控制多路音源处理电路如图1所示,主要由IC601(TDA7313DA)、lC602(KID4558D)两块集成电路为主构成。   1、TDA7313DA简介   TDA7313DA是飞利浦公司生产的专用于数字音响的
[嵌入式]
STM32学习记录7:定时器中断
配置流程: 1:系统时钟初始化,包括系统时钟和要开放的IO口或者功能的时钟配置。 2:IO口初始化,包括引脚,速率,输入输出模式等。 3:NVIC 中断向量配置 ,中断向量基地址和优先级的配置。 4:TIM3初始化:包括自动重装值,分频值,计数模式,使能TIM中断,使能TIM3外设 5:中断处理函数:注意清除TIMx的中断待处理位 注意: 1:RCC初始化要使能或者失能 APB1 外设时钟。 2:中断处理函数:注意清除TIMx的中断待处理位 TIMx_SR寄存器 3:关于时钟:初始化RCC时使用SystemInit()函数时默认的是AHB不分频,即HCLK等于SYSHCLK,APB2不分频,APB1为HCLK 2分频而定时器3
[单片机]
STM32串口中断接收数据
数据帧满足下面格式: 帧头部(Head) 类型(Type) 长度(Length) 值(Value) CRC校验 2字节 1字节 1字节 X字节 2字节 0xaa 0x55 X void USART6_Init (void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6,ENABLE); RCC
[单片机]
德州仪器推出可用于散热系统管理的 +/-1℃ 远程与本地温度传感器
该器件通过简便的热敏二极管监控简化了设计过程 2007 年 5 月 28 日,北京讯 日前,德州仪器 (TI) 宣布推出一款准确度在 +/-1℃ 范围内的远程结温传感器与本地温度传感器集成一体的器件 — TMP411,用于监控 CPU、微处理器、图形处理单元与 FPGA 中的热敏二极管。该器件的独特之处在于其不仅具备可编程串联电阻抵消与二极管非理想性校正功能,而且简化并消除了远程二极管监控中常见的独立处理器电阻校准过程,节省了时间。(更多详情,敬请访问: www.ti.com/sc07095 。) TMP411 可为种类繁多的应用提供散热系统管理功能,如工业控制器、服务器、台式机、笔记本电脑以及医疗设备。其它应用还包括局端
[新品]
51单片机C编程(六、定时器时钟显示时分秒)
六位数码管显示时分秒,通过四个按键进行时间的控制。按下 调时 按键,时间显示停止;按下 选择时分秒 按键,数码管上方的发光二极管会点亮,对应着选中的要修改的时间是小时、分钟还是秒;按下 按下增加 按键,选中的时间将会增加;按下 完成 按键,时间继续显示。 已通过proteus仿真,电路图如下所示,希望大家多多指点,积极留言: //编程:jumpmysoul #include reg51.h #define ulong unsigned long char tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管数字码 char tab_dp ={
[单片机]
三星ARM处理器S3C4510B的HDLC通道使用及编程
摘要 三星16/32位ARM处理器S3C4510B是目前在国内应用非常广泛的一种性价比很高的ARM处理器,本文在介绍S3C4510B中HDLC通道结构特点的基础上,详细说明了4510中HDLC通道在DMA收发方式下的工作过程,使用方法和编程中的一些注意事项。 1:S3C4510B简介 S3C4510B(以下简称4510)是韩国三星公司开发的一款基于ARM7TDMI架构的16/32位高性能微处理器。具用丰富的外围接口,如以太网,HDLC等,可灵活配置,适用于多种应用。4510具有以下性能特点: ◆ 8K字节的内部CACHE,也可用作内部SRAM ◆ 两线IIC接口,作为IIC主器件使用 ◆ 以太网控制器 ◆ 双通道HDLC控制器 ◆
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved