stm32f1xx i2c通讯故障可能原因

发布者:创新思绪最新更新时间:2019-04-02 来源: eefocus关键字:stm32f1xx  i2c  通讯故障 手机看文章 扫描二维码
随时随地手机看文章

在做i2c通讯时,总时出现一些故障,现在对故障进行总结:


1.程序停在while (I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)) ,是i2c总线忙碌。当我们 要是用i2c总线时,i2c的时钟线和数据线都应该为高电平,stm32默认的i2c引脚自带了高电平,如果是重映射的就需要我们 自己确认引脚是否是高电平,还有一个原因是i2c的gpio模式选择不对,应该选择复用开漏输出。


2.程序停在while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))时,是主模式发送选择不正确。我们先要确认硬件的i2c总线上的所有地线是否都已接地,如果没有就接地,再调试程序,看是否调通。如果还未 通,需要检查i2c的初始化配置和从属地址是否正确。


关键字:stm32f1xx  i2c  通讯故障 引用地址:stm32f1xx i2c通讯故障可能原因

上一篇:【STM32CUBEMX】 I2C Slave 实现
下一篇:STM32的I2C主从机通信

推荐阅读最新更新时间:2024-03-16 16:26

基于I2C总线技术的USB接口设计
   1、前言   USB(Universal Serial Bus)通用串行总线是在1994年底由康柏、IBM、Microsoft等多家 公司联合制订的,但是直到1999年,USB才真正被广泛应用。同时,他也得到了各PC厂商、芯片制造商和PC外设厂商的广泛支持,USB外设在国内外以惊人的速度发展,迄今为止,各种USB的外设已经有数千种。为PC外围设备设计USB接口已成为大势所趋。     随着单片机技术的发展,单片机的功能日益强大,外围电路日益复杂,其有限的管脚也就显 得捉襟见肘。目前采用普通单片机外加USB接口芯片开发USB外设时,USB接口器件大都是采 用并行接口与单片机相连接,这样再加上一些控制信号线,总共需要占用单片
[工业控制]
基于<font color='red'>I2C</font>总线技术的USB接口设计
I2C总线通信技术在球形机器人双DSP控制系统中的应用
     当前,机器视觉技术与运动控制技术正日益成为新一代智能机器人系统的热门技术,在反恐防爆与抗险救灾、星际探测、地质勘察等领域,机器视觉技术和运动控制技术都已得到大量应用。然而,在很多情况下,这两种技术的无缝联结和有机融合却并不理想,以至直接影响到它们的使用效果。笔者通过研究和探索发现,机器人控制系统硬件平台搭建得合理与否是影响上述技术协调工作的重要原因之一。     对于传统的机器人控制系统来说,选用单一的核心芯片将难以让其在机器视觉和运动控制两方面都具有优良的表现,将会导致机器人综合效能得不到充分发挥。众多的集成芯片生产厂家意识到图像处理和运动控制将会是未来半导体芯片的两大重要应用领域,都纷纷推出了基于上述两种应用的芯
[网络通信]
I2C器件的从设备地址的设置
刚开始接触单片机,很多不懂,今天看到一条语句: #define WriteDeviceAddress 0xa0 //写器件地址 #define ReadDviceAddress 0xa1 //读器件地址 不明白这个0xa0与0xa1是怎么确定的,然后翻了一些资料以及上网搜索了相关问题。自己总结了关于从器件地址的确定的原理: 举个例子,如芯片AT24C02, 地址的规则为:1010(A0)(A1)(A2)(R/W) 最后一位(R/W)是写保护引脚 接高电平时只能对该器件进行读操作((R/W)=1),低电平时为写操作((R/W)=0). 前四位是确定的1010,接下来三位是根据该从器件的连接方式确定的
[单片机]
单片机的I2C总线与MAX517与数据通信
1 I2C总线的特点及基本通信协议 I2C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线?串行数据线和串行时钟线?即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。因为总线已集成在片内,所以大大缩短了设计时间,此外,在从系统中移去或增加集成电路芯片时,对总线上的其它集成芯片没有影响。 1.1 I2C总线的主要特点 I2C总线通常由两根线构成:串行数据线(SDA)和串行时钟线(SCL);总线上所有的器件都可以通过软件寻址,并保持简单的主从关系,其中主器件既可以作为发送器,又可以作为接收器; I
[嵌入式]
STM32之I2C例程(24C02)
#include stm32f10x.h #include #define SCL_H (GPIOB- BSRR = GPIO_Pin_6) #define SCL_L (GPIOB- BRR = GPIO_Pin_6) #define SDA_H (GPIOB- BSRR = GPIO_Pin_7) #define SDA_L (GPIOB- BRR = GPIO_Pin_7) #define SCL_READ (GPIOB- IDR & GPIO_Pin_6) #define SDA_READ (GPIOB- IDR & GPIO_Pin_7) #define I2C_DELAY (I2C_de
[单片机]
STM32F1使用I/0模拟I2C接口
使用模拟时序的方法,对比于硬件I2C接口来说,在实时性和传输速度上会带来一些无法避免的下降,但是I2C总线本身也不是一种速度很快的总线(据相关资料可查,最高的速度为400KHZ),同时也不需要具备很高的实时性能。 所以,模拟I2C时序完全能满足绝大部分的场合要求,并且移植性得到了很大的提高。 闲话不多说,贴上代码,大家一起分享下。 首先贴出 i2c_soft.h实现: /*********************************************************************************** * 文件名 :i2c_soft.h * 描述 :使用I/0模拟I2C接口 *
[单片机]
I2C总线原理与应用
一.简介 I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发。由于其简单性,如今方泛用于微控制器与各种功能模块的连接,可以说是学 单片机 的人,入门之后,必定要涉及到的。 I2C 总线实际上已经成为一个国际标准在超过100 种不同的 IC 上实现,而且得到超过50 家公司的许可,正因为其简单和应用广泛,因此其功能也越来不满足人们的要求,其速度也从原来的100Kbit/S,增加了快速模式,其速度达400Kbit/S,再后来也增加了高速模式,其速度更达3.4Mbit/S。 二.功能和特点 I
[单片机]
<font color='red'>I2C</font>总线原理与应用
MAX517与单片机的I2C总线数据通信
摘要:介绍了I2C总线的特点及数据通信的基本协议,并以AT89C51单片机与美国MAXIM公司的8位电压输出DAC数模转换器MAX517之间的通信为例,详细介绍了通过I2C总线进行数据通信的具体硬件电路连接和其通信子程序的编程方法。 关键词:I2C总线;AT89C51;MAX517;数据通信 1 I2C总线的特点及基本通信协议 I2C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线串行数据线和串行时钟线即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。因为总线已集成在片内,所以大大缩短了设计时间,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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