原文:解决STM32 I2C接口死锁在BUSY状态的方法讨论

关于STM 的I C接口死锁在BUSY状态无法恢复的现象,网上已有很多讨论,看早几年比较老的贴子,有人提到复位MCU也无法恢复 只有断电才行的状况,那可是相当严重的问题。类似复位也无法恢复的情况是存在的,技术支持矢口否认问题存在,并不是正确面对问题的态度。比如我用这款F 芯片的SDRAM控制器,在错误操作后进入HardFault状态,复位无法恢复,JTAG也无法联机,只能断电重来,官方的Errat ...

2019-04-25 14:44 0 834 推荐指数:

查看详情

STM32 HAL库 I2C 工作出错 返回I2C_BUSY

使用stm32cubemx生成硬件I2C的代码 不过自动生成的代码,调用HAL_I2C_XXX的API工作不正常,返回错误代码为I2C_BUSY 使用STM32I2C接口使用时需要注意很多细节,不过HAL库中官方已经为用户根据这些细节做了处理,可以直接使用。不过这个I2C代码并不稳定,有些板子 ...

Sat Jan 09 16:50:00 CST 2021 0 685
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
stm32I2C

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

Sat Mar 28 01:23:00 CST 2020 0 800
STM32应用实例十:简析STM32 I2C通讯死锁问题

I2C接口是一种使用非常普遍的MCU与外部设备的接口方式,在STM32中也集成了I2C接口,我们也常常使用它来与外围的传感器等设备通讯。 最近在我们使用STM32F1VET6读取压力和温湿度传感器数据时,就是使用I2C接口来实现通讯的。但在使用I2CSTM32F1的标准库读取数据时出现了死机 ...

Fri May 19 23:21:00 CST 2017 0 2307
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
STM32 I2C读写EEPROM(中断模式)

上一篇博客是使用I2C读写EERPOM的初级版本,这次在上次的基础上添加中断,使用DMA传输控制,新添加两个读写函数 采用中断方式和DMA可以充分利用单片机强大的硬件外设,提高整体运行效率,而且,在编程上也更为便捷 新的页写函数如下 代码中注释掉的部分是原来的设计,在它下面是新 ...

Fri Oct 19 20:37:00 CST 2018 0 1490
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM