I2C基本概念 I2C (芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。I2C模块有多种用途,包括CRC码的生成和校验、 SMBus(系统管理总线—System ...
使用stm cubemx生成硬件I C的代码 不过自动生成的代码,调用HAL I C XXX的API工作不正常,返回错误代码为I C BUSY 使用STM 的I C接口使用时需要注意很多细节,不过HAL库中官方已经为用户根据这些细节做了处理,可以直接使用。不过这个I C代码并不稳定,有些板子可以用,另一些则出错. 出错现象为调用HAL I C的API时,返回I C BUSY 查看寄存器 BUSY位 ...
2021-01-09 08:50 0 685 推荐指数:
I2C基本概念 I2C (芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。I2C模块有多种用途,包括CRC码的生成和校验、 SMBus(系统管理总线—System ...
关于STM32的I2C接口死锁在BUSY状态无法恢复的现象,网上已有很多讨论,看早几年比较老的贴子,有人提到复位MCU也无法恢复、只有断电才行的状况,那可是相当严重的问题。类似复位也无法恢复的情况是存在的,技术支持矢口否认问题存在,并不是正确面对问题的态度。比如我用这款F439芯片的SDRAM ...
学习STM32已经有一段时间了,很幸运编程正式从工作之余的学习变成工作中的所需,而幸运的同时也带来了一些压力和困扰。一个问题卡主,就会耽误工作进度,而对于半吊子的我而言,程序中出现问题已经变成家常便饭。 今天来记录一下近期工作中遇到的问题。目前 ...
因为要用到I2C和流量传感器通信,也是第一次使用,直接使用stm32F1 HAL库来实现初始化,在STM32F10E评估板上直接和传感器通信,一次性成功通过。 当把调试好的流量计驱动程序往实际的板子上应用的时候发现会死等在某一处如下: while(__HAL_I2C ...
目录 一、I2C协议简介 1. 物理层 2. 协议层 (1)主机写数据到从机 (2)主机由从机读数据 (3)读和写交替进行 (4)信号和时钟的配合 二、STM32中 ...
STM32 的I2C 特性及架构 如果我们直接控制STM32 的两个GPIO 引脚,分别用作SCL 及SDA,按照上述信号的时序要求,直接像控制LED 灯那样控制引脚的输出(若是接收数据时则读取SDA 电平),就可以实现I2C 通讯。同样,假如我们按照USART 的要求去控制引脚 ...
/** ****************************************************************************** * @author Ma ...
最近在调研STM32 F10X,准备把公司AVR的MCU项目迁移到STM32上。在调研STM32 i2c这一部分时,在与i2c slave硬件连接断开后,这时再去读/写 i2c slave需要STM32这边的i2c_read/write函数做一些处理。 刚开始在i2c读写timeout后,添加 ...