我在使用STM32F407的硬件I2C,工程是用CUBE生成,速度设定为400KHz,但实际测试只有297KHz,求大神们指点下,用CUBE生成的硬件I2C,能改动的参数不多,附上初始化,求大神们指点下!谢谢! hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 400000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c1) != HAL_OK) { Error_Handler(); } |
盘古UE-STM32F407工控板原理图
STM32F407 定时器触发DMA 求助大神
【MCU实战经验】基于STM32F407的音频播放器设计
【STM32F429心得\疑问】+STM32F4之FSMC和FMC
STM32F429读取IO口传输的数据速率
STM32F407ZGT6 手摸芯片背部重启
STM32F4 SPI 动作时,软件片选信号被拉高,IO口程序逻辑失控
STM32F401RE NUCLEO求助,串口一直不能进中断
读取STM32F407内部温度传感器值错误
STM32F429多路内部ADC独立采集的办法
评分
查看全部评分
我提供一种解决方法给LZ参考:
我是用两个GPIO口模拟的IIC通信,来读取EEPROM,没有任何问题。因为GPIO的通信速率有100M,模拟IIC的通信达到400K很容易。
这个地方新手容易把应答信号写错,其他的就没什么了,祝LZ早日解决问题
评分
查看全部评分
评分
查看全部评分
STM32CubeMX设置的时钟也不一定对,不排除会有BUG。自己调试,看一下各时钟都是多少,尤其是观察下系统时钟。
评分
查看全部评分
评分
查看全部评分