
型号:[STM32F407](http://openedv.taobao.com/)ZE 硬件I2C1,使用STM32CubeMX生成代码, 发现I2C1故障,现象是SCL无波形,排除端口以及上拉问题 查看数据手册I2C1有两种端口算着:I2C_SCL:PB6或PB7; I2C_SDA:PB7或PB9 发现只要PB9不参与,就出现SCL端口没有波形(用示波器,常为高) 设置部分的代码,是用STM32CubeMX生成的,如下: 主函数代码: int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); MX_I2C2_Init(); uint8_t TMP8[3]={0xAA,0XAA,0XAA}; while(1) { HAL_I2C_Master_Transmit(&hi2c1, 0x80,TMP8,3,100); HAL_I2C_Master_Transmit(&hi2c2, 0x80,TMP8,3,100); } } 其中端口设置在文件:stm32f4xx_hal_msp.c中 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hi2c->Instance==I2C1) { __HAL_RCC_GPIOB_CLK_ENABLE(); /**I2C1 GPIO Configuration PB6 ------> I2C1_SCL PB7 ------> I2C1_SDA */ //PB8 ------> I2C1_SCL //PB9 ------> I2C1_SDA GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;//错误,SCLK无波形 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_9;//OK,SCLK有波形 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_7;//错误,SCLK无波形 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;//OK,SCLK有波形 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); __HAL_RCC_I2C1_CLK_ENABLE(); } else if(hi2c->Instance==I2C2) { ……………… } } 请教,这是什么原因 这里不讨论软件模拟I2C,谢谢! |
串口重定向接收不同
关于三轴陀螺仪 I3G4250D
经过光耦之后,脉冲计数功能为啥不能实现?
STM32F407 ADC Dual regular simultaneous only 模式下最高采样率仅 96 kHz,960 kHz 无法工作,求助!
STM32 F407骄阳电机版用DMA双缓存接收串口数据时,上电第一次接收区是memory1而不是memory0?
STM32F407骄阳版用DMA双缓存区接收串口数据,上电第一次接收到的数据在memory1而不是memory0
stm32f407无法配置定时器2为全部dma
FreeRTOS问题求解
使用stm32F407连接PHY芯片进行以太网通讯,一插网线就会进入错误中断。
ST的IMU和地磁计用motionfx库融合后航向角异常的问题
是硬件问题,SDA与其它地方短路,正在排除,谢谢!