stm32硬件iic缺陷如何解决
答:1.比如为了防止错过Ack信号的读取,可以加入循环发送并读Ack的步骤,也可以直接关中断,如果有资源用DMA最好了,收发数据以及标志位的相关处理和判断都自动处理。2.还有就是调试过程中,如果断点设在等待Ack前,会清除Ack信号 ADDR: Address sent (master mode)/matched (slave mode)This bit is cleared...
答:stm32的iic硬件有缺陷。。。当年搞了半天都解决不了问题。。。后来才听说硬件本身有问题。。。我当年的解决方法是读一次数重启一次iic。。。凑合着用的。。。
答:stm32 在用mpu6050时 iic 复用pb8 pb9卡在 while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题代码 GPIO_InitTypeDef GPIO_InitStructure; /* 使能与 I2C1 有关的时钟 */ RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE ); RCC...
答:一般情况下,那些所谓的BUG,我们是不会使用到的,除非特殊情形下,但官方也给出相应的解决方案。STM32F10x_硬件I2C读写EEPROM(标准外设库版本):http://blog.csdn.net/ybhuangfugui/article/details/52175621
答:不用搞这个了STM32的IIC通讯有个bug。因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了。想用IIC的话,就用软件模拟吧。
答:一般的IO口都可以配置成你说的四种模式的任意一种,而且编程过程中可以随时进行转换。有些脚只能设置成输出或者输入,比如OSC32的IN,OUT做普通IO使用时就是如此。这些在STM32的datasheet的引脚部分中都有详细说明。IIC总线CLK要用推挽,数据总线在送出信号时设置成推挽,输入如果没有上拉电阻时配置成上...
答:stm32的iic好像不好用,可以根据时序,通过IO模拟iic,注意时钟拉高或者拉低时需要加延时。其他通信方式你可以参考串口、CAN、SPI、FSMC等。
答:stm32硬件IIC不好用,据说是有问题,所以大多都是使用模拟IIC;SPI的话,个人认为如果硬件连接是连接的STM32硬件SPI接口,使用硬件SPI比用模拟SPI好,速度,稳定性,简便性都很强。如果硬件设计不到位的话,只能用模拟的SPI。
答:硬件IIC只能接到它固定的管脚上,而且好像只有一两组,另外IO固定有时画板不好布线,有一定的局限性; 模拟I2C随便两个IO口就可以用了,另外同样的代码移值到其他类型的MCU上很方便,重新绑下IO口的就可以了。
答:用的是硬件IIC?采用DMA方式吗?如果IIC中断优先级低被其他程序打断,IIC通讯时间延时过长而且开了错误中断,程序就会一直进错误中断
网友评论:
凤包17147961573:
stm32内部iic读写eeprom有问题吗 -
55824况施
: 可以这么肯定的说,如果你的项目不是很特殊的情况下,那就不是问题.怎么说呢,官方承认在某种情况下,硬件I2C是存在不足的地方,但是官方给出了解决方法.STM32F10x_硬件I2C读写EEPROM(标准外设库版本):http://blog.csdn.net/ybhuangfugui/article/details/52175621
凤包17147961573:
STM32 硬件I2C 到底是不是个坑 -
55824况施
: 下面是我在测试中得到的几个结论:1、硬件I2C的CLK在50kHz及以下的情况下工作,不会出现任何情况下的卡住.(本人测试时间为20h)2、硬件I2C的CLK在常用的100kHz和400KHz下工作,99%的概率下会在1小时之内卡住,甚至只有几...
凤包17147961573:
stm32的I2C为什么会有bug -
55824况施
: 不用搞这个了STM32的IIC通讯有个bug. 因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了. 想用IIC的话,就用软件模拟吧.
凤包17147961573:
STM32F302RC 硬件I2C DMa有坑吗 -
55824况施
: 业内一直传说STM32的硬件I2C有bug,会出现一些死锁的情况,所以大家一般都会避免使用硬件I2C,转而使用模拟I2C,毕竟引脚可以随便设置.具体到底有没有坑,这个我还真的没测试过,一直用的都是模拟I2C.
凤包17147961573:
STM32有硬件IIC,为什么很多应用,还要模拟IIC -
55824况施
: 硬件IIC只能接到它固定的管脚上,而且好像只有一两组,另外IO固定有时画板不好布线,有一定的局限性; 模拟I2C随便两个IO口就可以用了,另外同样的代码移值到其他类型的MCU上很方便,重新绑下IO口的就可以了.
凤包17147961573:
请教MSP430g2553 硬件IIC的问题 -
55824况施
: 应该不是的,好歹也是大公司的产品.我用的是STM32+IIC+AT24C256,用的是IIC总线,操作很正常,因此,应该是IIC总线的配置问题,包括IIC复用管脚的模式(推挽还是上拉)等,还有一种可能就是:IIC接口损坏,可能是不小心手碰到了,或者焊接时引起的..
凤包17147961573:
求助 STM32模拟IIC问题 读数据问题 有些做过帮忙看一下 -
55824况施
: 找到问题了 ,原来是挂在总线上的24c02对总线有影响,向m8写操作的时候由于不需要返回数据所以没有问题,但是当读操作的时候,虽然没有读取24c02的地址,但是由于24c02仍然使能,对i2c总线干扰,导致被寻址的m8不能正常返回数据(用示波器观察电平不对)
凤包17147961573:
stm32编程中,软件模拟是什么意思 -
55824况施
: 就是通过写程序来实现的意思.比如IIC,有硬件IIC,我们只需要配置好了就不用管了,读写时序延时之类的硬件自己搞定,我们只需要直接操作数据就行.就像上面说的通讯时序可以使用软件模拟,通过程序实现.另外注意不要使用32的硬件IIC,有BUG.主要是ST公司为了规避飞利浦的专利问题.所以我们一般使用软件模拟IIC.
凤包17147961573:
关于STM32中模拟IIC或SPI管脚配置问题?
55824况施
: 你这种情况比较复杂!SPI总线建议你使用STM32内置的SPI总线,网上有很多例程.如果你一定要模拟也是可以的. IIC总线一直是STM32的诟病,用模拟总线更安全一些. 一般的IO口都可以配置成你说的四种模式的任意一种,而且编程过程中可以随时进行转换. 有些脚只能设置成输出或者输入,比如OSC32的IN,OUT做普通IO使用时就是如此. 这些在STM32的datasheet的引脚部分中都有详细说明. IIC总线CLK要用推挽,数据总线在送出信号时设置成推挽, 输入如果没有上拉电阻时配置成上拉输入,有上拉则配置成浮空输入. SPI总线的CLK,CS,MOSI脚设置成推挽,MISO脚配置成上拉输入.
凤包17147961573:
stm32f0 i2c eeprom 怎么清除 -
55824况施
: eeprom的擦除,拿到该eeprom的spec,根据说明是写全FF还是0擦除就好了,前提是你的i2c是已经通了的,这块应该没有任何难度,仔细看手册吧,玩单片机和arm就是这样!望采纳!