打印
[STM32G0]

软件复位之后I2C就不工作是为啥?

[复制链接]
357|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Wordsworth|  楼主 | 2025-5-9 07:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设备重新上电能用,但代码里NVIC_SystemReset后I2C就像死了一样,是硬件锁了?

使用特权

评论回复
沙发
Clyde011| | 2025-5-9 07:41 | 只看该作者
我以前只能靠硬复位清掉I2C锁死。

使用特权

评论回复
板凳
周半梅| | 2025-5-9 07:42 | 只看该作者
复位后有没有重新初始化I2C?

使用特权

评论回复
地板
公羊子丹| | 2025-5-9 07:43 | 只看该作者
会不会是I2C没释放总线?

使用特权

评论回复
5
帛灿灿| | 2025-5-9 07:44 | 只看该作者
检查一下IO口是不是被锁了?

使用特权

评论回复
6
童雨竹| | 2025-5-9 07:44 | 只看该作者
是不是没加延时I2C刚上电还没准备好?

使用特权

评论回复
7
万图| | 2025-5-9 07:45 | 只看该作者
I2C状态寄存器你清了没?

使用特权

评论回复
8
Wordsworth|  楼主 | 2025-5-9 07:46 | 只看该作者
你加了跳转Bootloader那种代码没?

使用特权

评论回复
9
Bblythe| | 2025-5-9 07:47 | 只看该作者
NVIC_SystemReset有时候不清外设状态要注意。

使用特权

评论回复
10
Pulitzer| | 2025-5-9 07:48 | 只看该作者
你用LL还是HAL?试过互换吗?

使用特权

评论回复
11
Uriah| | 2025-5-9 07:49 | 只看该作者
是不是总线拉低了卡住了START?

使用特权

评论回复
12
温室雏菊| | 2025-6-14 08:39 | 只看该作者
在STM32G0中,软件复位后I2C不工作通常与硬件初始化、时钟配置、引脚状态或软件逻辑相关

使用特权

评论回复
13
西洲| | 2025-6-14 09:30 | 只看该作者
初始化代码未执行,复位后程序可能未执行到I2C初始化代码(如复位后直接进入主循环,未重新初始化外设)

使用特权

评论回复
14
将爱藏于深海| | 2025-6-14 10:00 | 只看该作者
复位后状态丢失,软件复位会重置所有外设寄存器,包括I2C的配置寄存器。若复位后未重新初始化I2C,其将处于默认状态(如禁用模式),导致无法工作

使用特权

评论回复
15
春日负喧| | 2025-6-14 11:00 | 只看该作者
在复位处理函数或主程序初始化部分,重新配置I2C外设(如波特率、模式、地址等)。在复位后调用I2C_Init()函数,确保I2C被重新配置

使用特权

评论回复
16
失物招領| | 2025-6-14 12:00 | 只看该作者
时钟未重新配置,软件复位后,I2C的时钟可能被禁用(如RCC寄存器被重置),导致I2C无法工作

使用特权

评论回复
17
白马过平川| | 2025-6-14 13:00 | 只看该作者
时钟配置错误,复位后未正确配置I2C时钟源或分频器,导致时钟频率不正确

使用特权

评论回复
18
风凉| | 2025-6-14 16:00 | 只看该作者
在复位处理函数或初始化代码中,重新使能I2C时钟

使用特权

评论回复
19
故意相遇| | 2025-6-14 18:00 | 只看该作者
检查时钟配置,确保I2C时钟源(如APB1)和分频器配置正确,满足I2C工作频率要求(通常为100kHz或400kHz)

使用特权

评论回复
20
她已醉| | 2025-6-14 20:00 | 只看该作者
引脚模式未重置,软件复位后,GPIO引脚可能被重置为默认模式(如输入模式),导致I2C无法正常通信

使用特权

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

本版积分规则

103

主题

5120

帖子

1

粉丝