原文:STM32应用实例十:简析STM32 I2C通讯死锁问题

I C接口是一种使用非常普遍的MCU与外部设备的接口方式,在STM 中也集成了I C接口,我们也常常使用它来与外围的传感器等设备通讯。 最近在我们使用STM F VET 读取压力和温湿度传感器数据时,就是使用I C接口来实现通讯的。但在使用I C和STM F 的标准库读取数据时出现了死机的现象。其现象是这样的,程序可以顺利的运行,但I C没有数据返回。用示波器查看波形时,发现SCL的电平时钟为高, ...

2017-05-19 15:21 0 2307 推荐指数:

查看详情

STM32I2C框图详解及通讯过程

  STM32I2C 特性及架构   如果我们直接控制STM32 的两个GPIO 引脚,分别用作SCL 及SDA,按照上述信号的时序要求,直接像控制LED 灯那样控制引脚的输出(若是接收数据时则读取SDA 电平),就可以实现I2C 通讯。同样,假如我们按照USART 的要求去控制引脚 ...

Fri Dec 20 23:47:00 CST 2019 0 2141
STM32 i2c通讯失败复位方法

最近在调研STM32 F10X,准备把公司AVR的MCU项目迁移到STM32上。在调研STM32 i2c这一部分时,在与i2c slave硬件连接断开后,这时再去读/写 i2c slave需要STM32这边的i2c_read/write函数做一些处理。 刚开始在i2c读写timeout后,添加 ...

Fri Apr 17 02:56:00 CST 2020 0 1319
STM32应用实例八:与多台MS5803压力传感器I2C通讯

MS5803压力传感器支持SPI和I2C总线通讯,拥有24位AD转换。能够同时获得压力值和温度值,其中压力测量范围为10-1100mbar,温度的测量范围是-40-85摄氏度。各引脚功能及参数如下: 传感器内部结构图如下: 通讯协议的选择通过PS引脚来设置 ...

Sat Mar 25 16:53:00 CST 2017 0 2487
STM32应用实例六:与MS5837压力传感器的I2C通讯

MS5837压力传感器是一种可用于电路板上,适用于检测10-1200mbar压力范围的传感器,灵敏度非常高,理论上能够检测到0.01mbar的压力变化,实际使用过程中测试并无明显的变化。 MS5837采用I2C总线通讯,与STM32的MCU可以实现I2C通讯。硬件连接方式 ...

Sat Mar 11 16:54:00 CST 2017 0 5647
stm32I2C

I2C基本概念 I2C (芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。I2C模块有多种用途,包括CRC码的生成和校验、 SMBus(系统管理总线—System ...

Sat Mar 28 01:23:00 CST 2020 0 800
解决STM32 I2C接口死锁在BUSY状态的方法讨论

关于STM32I2C接口死锁在BUSY状态无法恢复的现象,网上已有很多讨论,看早几年比较老的贴子,有人提到复位MCU也无法恢复、只有断电才行的状况,那可是相当严重的问题。类似复位也无法恢复的情况是存在的,技术支持矢口否认问题存在,并不是正确面对问题的态度。比如我用这款F439芯片的SDRAM ...

Thu Apr 25 22:44:00 CST 2019 0 834
STM32I2C特性及架构

软件模拟协议:使用CPU直接控制通讯引脚(GPIO)的电平,产生出符合通讯协议标准的逻辑。 硬件实现协议:由STM32I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态 ...

Fri May 04 07:22:00 CST 2018 0 1786
STM32之模拟I2C的实现

一、什么是I2C?   I2C是串行数据总线,有两根信号线组成,一根是SDA(数据线),一根是SCL(时钟线)。I2C总线是多主从总线,当有两个主机或多个主机同时初始化传输数据时,可以通过冲突检测和仲裁防止数据被破坏,每个连接到总线上的设备都有唯一的地址,任何器件既可以作为主机也可以作为从机 ...

Sun Aug 16 00:22:00 CST 2020 0 615
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM