环境:STM32C8T6+CUBEIDE。
因为功能上要求有日志存储,那就一定要有时间戳。板子上就加了RTC日期和时间。初始化直接就停那里了。也不知道是RTC没配好,还是咋回事,就一路断点查了下去。开始发现RTC在RTC_WaitForSynchro()那里循环死掉。按照网上各路大侠的方法试了半天还是个死。偶然一次断点竟然停在W5500初始化里面了。突然想到是不是有冲突。就打开CubeIDE图形化设置界面去看看那些黄色说明。真的发现PC13是Tamper_RTC,侵入检测功能和RTC输出引脚。我把它用来做了W5500的硬启动RESET了,那可不是!初始化W5500,reset过程需要从初始高电位拉低500us以上,再一直保持高电平。这下冲突就这么产生了。
马上换掉,一切正常!