历史上的今天
返回首页

历史上的今天

今天是:2025年06月03日(星期二)

正在发生

2018年06月03日 | STM32 I2C读写

2018-06-03 来源:eefocus

1,该模块默认地工作于从模式。接口在生成起始条件后自动地从从模式切换到主模式;当仲裁丢失或产生停止信号时,则从主模式切换到从模式。

2,数据和地址按8位/字节进行传输,高位在前。


3,数据流:SDA线->移位寄存器->DR寄存器


主模式

以起始条件开始并以停止条件结束。当通过START位在总线上产生了起始条件,设备就进入了主模式。

1、检测总线状态,当总线空闲时(I2C_SR2的BUSY=0)。

FlagStatus I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY);

2、设置START=1,产生起始信号。

I2C_ GenerateSTART

起始信号产生后,I2C_SR1的SB位被硬件置位,如果设置中断则产生中断;主设备等待读SR1寄存器,即等待EV5发生。

I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_MODE_SELECT)。

  当EV5发生时读取状态寄存器值就会自动清除状态位。

3、发送从设备地址

I2C_Send7bitAddress

主设备为发送器时,地址最低位为0;接收器时,地址最低位为1。

I2C_SR1的ADDR位硬件置1,如果设置中断则产生中断;主设备等待读SR1寄存器,即等待EV6发生。

I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)。

 

主发送器:

4、发送数据,

在发送了地址和清除了ADDR位后,主设备通过内部移位寄存器将字节从DR寄存器发送到SDA线上。主设备等待,直到TxE被清除,
I2C_SendData

  当收到应答信号时,TxE位被硬件置位,即当TxE被硬件置位时就已经收到应答信号。如果设置中断,则产生中断。如果TxE位被置位,但在下一个数据发送结束之前没有新数据写入到I2C_DR寄存器,则BTF位(Byte transfer finished)被置位,在清除BTF之前I2C接口将保持SCL为低电平;读出I2C_SR1之后再写入I2C_DR寄存器将清除BTF位。

5、发送停止信号

   在DR寄存器中写入最后一个字节后,通过设置STOP位产生一个停止条件(见图245的EV8_2),然后I2C接口将自动回到从模式(M/S位清除)。

I2C_GenerateSTOP
注: 当TxE或BTF位置位时,停止条件应安排在出现EV8_2事件时。



主接收器

在发送地址和清除ADDR之后,I2C接口进入主接收器模式。在此模式下,I2C接口从SDA线接收数据字节,并通过内部移位寄存器送至DR寄存器。


推荐阅读

史海拾趣

Advanced Detector Corp公司的发展小趣事

随着全球市场的不断开放和经济的全球化,ADC开始将业务拓展至全球范围。公司在全球各地设立了分支机构,并建立了完善的销售和服务网络。通过全球化布局,ADC成功打开了新的市场,提升了品牌影响力,实现了业务的快速增长。

ENOCEAN公司的发展小趣事

2010年,EnOcean公司成功成为国际标准组织ISO/IEC的成员。这一里程碑事件标志着EnOcean的技术和产品在全球范围内得到了广泛认可。通过参与制定无线传感网络的国际标准,EnOcean进一步巩固了其在行业内的领先地位,为推广其无线无源传输技术奠定了坚实基础。

格瑞宝(GP)公司的发展小趣事

格瑞宝公司成立于2014年8月,总部选址于上海张江高科园,这里是中国科技创新的重要基地之一。公司从创立之初就明确了以自主研发、销售服务为主体的半导体公司发展路径。这一决策不仅为格瑞宝提供了丰富的科技资源和人才支持,也为其后续快速发展奠定了坚实基础。在总部的带领下,格瑞宝逐步建立起完善的产品研发、设计、测试和销售体系。

ETA Electric Industry Co Ltd公司的发展小趣事

在市场不断拓展的同时,ETA Electric Industry Co Ltd非常注重产品质量管理。他们引入了国际先进的质量管理体系,并严格执行每一项质量控制标准。公司还设立了专门的质量检测部门,对每一批出厂的产品进行严格把关。这种对质量的极致追求,赢得了客户的广泛认可和信赖。

苏州锋驰(Feng)公司的发展小趣事
由于稳流器需要具备稳定性和调节功能,其设计和制造过程相对复杂,因此成本通常较高。
ABECO公司的发展小趣事

在1950年代的英国,ABECO的创始人凭借对电子行业的热爱和对手工工具的独特见解,开始了他的创业之路。初创时期,资金匮乏,人员稀少,但创始人凭借着对品质的执着和对创新的追求,不断研发出满足市场需求的高质量工具。他亲自走访客户,了解需求,不断完善产品,逐渐在电子行业中树立起了良好的口碑。

问答坊 | AI 解惑

竞赛资料2

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑 一些资料  …

查看全部问答>

手机控制单片机 2

想实现手机发送短信,板子上GSM模块接收短信,给单片机,单片机处理接收到的信息,然后做输出控制(其它器件) 可行性和大概步骤   已得到论坛上的朋友帮助。。。 现在想具体实现步骤了,不过对那些器件几乎都不懂 比如像GPRS或GSM模 ...…

查看全部问答>

意大利太阳能光伏产业前景简析

一、太阳能光伏产业发展状况  (一)2009年全球太阳能光伏发电产业情况  根据欧洲光伏工业协会(EuropeanPhotovoltaicIndustryAssociation,简称EPIA)统计,到2009年年底,全球光伏市场累计容量已超过20GW(注1),其中仅2009年全球新增设备发电 ...…

查看全部问答>

Altera FPGA的JTAG接口问题

altera给的usbblaster的引脚连接如下图所示,顺序从上到下引脚编号为1到10,其中VCC(TRGT)被解释为Target power supply, 大家知道目标板FPGA有多个电源供电,以cyclone III或者IV为例,最基本的有1.2V,2.5V,3.3V。那这个VCC(TRGT)到底是几 ...…

查看全部问答>

有偿招代做

基于51单片机的位移,速度测量。位移为小位移量,mm级,所测量的机械动作时间快,为ms级。能与pc机通信的usb串口。价格和有不明白的地方请给我留言,或加QQ76478918…

查看全部问答>

求大神答疑,关于Zigbee的问题

各位大大大神,小弟我是个zigbee菜鸟,目前学姐让我做一个zigbee组网的东西,要点如下: 例如 协调器O连接有A,B,C三个路由,路由器A又有DEF三个路由现在发送,如果O要发送数据给D,应该怎么做?  CC2430里面的SAMPLE 组网之后发送数据 其 ...…

查看全部问答>

惊艳的四轴

$(\'swf_UzK\').innerHTML=AC_FL_RunContent(\'width\', \'600\', \'height\', \'500\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://swf.ws.126.net/movieplayer/-0-2_M84QSBLT3_M84QSF3C ...…

查看全部问答>

怎样利用HEX文件 条件批量生成新的HEX文件

在成产上,不可能给源代码,只有HEX文件。 但是每个HEX文件中的代码ID又不一样,如果用源代码一个一个的去生成,这个工作量太大了, 我只知道可以自己编写一个exe的软件,可以修改HEX中ID,利用研发部提供的一个标准的HEX,去生成一个新的HEX。将 ...…

查看全部问答>

MSP430教程9:MSP430单片机时钟模块

MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430X11X,MSP430X12X没有)、数字控制振荡器DCO、琐相环FLL(MSP430X16X以上包括)和增强型琐相环FLL+等部件组成。 MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz, ...…

查看全部问答>