打印
[STM32F4]

STM32F407ZE_I2C1必须用PB9,否则SCK无波形

[复制链接]
747|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2023-9-26 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
型号:[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,谢谢!

使用特权

评论回复
沙发
MessageRing| | 2023-9-30 20:26 | 只看该作者
是不硬件的问题啊

使用特权

评论回复
板凳
Bowclad| | 2023-10-8 23:21 | 只看该作者
这个引脚有问题吧

使用特权

评论回复
地板
Undshing| | 2023-10-9 21:43 | 只看该作者
检查一下那个引脚有没有问题

使用特权

评论回复
5
Henryko| | 2023-10-10 12:54 | 只看该作者
可能是硬件设计出了问题吧

使用特权

评论回复
6
AloneKaven| | 2023-10-10 18:20 | 只看该作者
这应该不是软件的问题吧

使用特权

评论回复
7
Stahan| | 2023-10-11 20:15 | 只看该作者
线路有问题吧

使用特权

评论回复
8
Mowergy| | 2023-10-17 14:28 | 只看该作者
检查一下是不是硬件出了问题

使用特权

评论回复
9
我吃小朋友| | 2023-10-18 20:47 | 只看该作者
没有必须啊,是不是你的复用时钟没开?

使用特权

评论回复
10
她已醉| | 2023-10-18 23:00 | 只看该作者
硬件焊接不OK?

使用特权

评论回复
11
春日负喧| | 2023-10-19 02:00 | 只看该作者
不是这样的,一般复用需要开复用时钟哈

使用特权

评论回复
12
故意相遇| | 2023-10-19 05:00 | 只看该作者
你用cubemx来配置还这样?

使用特权

评论回复
13
风凉| | 2023-10-19 08:00 | 只看该作者
很怀疑你的硬件是有问题的哈

使用特权

评论回复
14
白马过平川| | 2023-10-19 13:00 | 只看该作者
那你就用这个引脚吧。既然换还费劲的话

使用特权

评论回复
15
温室雏菊| | 2023-10-19 16:00 | 只看该作者
你可以写个简单代码,使用PB9输出个电平,看看效果

使用特权

评论回复
16
西洲| | 2023-10-19 18:00 | 只看该作者
一般I2C也不需要固定IO啊,都是好几个可以复用的

使用特权

评论回复
17
将爱藏于深海| | 2023-10-19 20:00 | 只看该作者
不如用模拟I2C了,还简单,还省事儿

使用特权

评论回复
18
捧一束彼岸花| | 2023-10-20 10:00 | 只看该作者
建议楼主可以换一块板子试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

610

主题

3226

帖子

4

粉丝