ST意法半导体
直播中

郝埃连

7年用户 1395经验值
私信 关注
[问答]

STM32F401RE:I2C代码仅在调试模式下单步运行时有效是什么原因?

美好的一天,我正在尝试将 STM32F401RE 与 DS3231 RTC 模块连接起来。这个想法是从RTC模块的计时寄存器中读取。根据代码,我决定将“小时”寄存器设置为 6,当读取寄存器时,预计会读取 6。此代码仅在调试模式下单步执行时有效,在运行时无效。我不知道为什么会这样,但如果我遗漏或弄错了什么,我很乐意知道。
源代码在下面的附件中。








回帖(1)

李建华

2023-1-12 14:40:45
不想深入研究您的寄存器级代码,只是一句话:


  • if ((I2C1->SR1 & I2C_SR1_TXE)){

这应该是一个 while 循环,代码在该循环中等待旋转,直到传输完成。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分