1 问题描述
最近在调试SPI Slave程序,遇到一个很奇怪的问题:单步调试时SPI1 CLK管脚AF Mode自动变化为0;但是在管脚初始化时,已经将其配置为5了。
2 问题现象
通过视频可见:
STM32G4芯片SPI1 CLK管脚AF Mode自动变化
- 在11秒前,AFRL3=0x05,其由218行LL_GPIO_SetAFPin_0_7函数配置。
- 在12秒,step into LL_GPIO_SetPinMode 函数后,AFRL3突然自己变成0x00了。
3 问题排查
排查过程比较折腾,反复尝试做了很多测试和实验,怀疑过代码的问题,也怀疑过破解软件的问题,也联系了ST的FAE寻求帮助,这里不展开聊了。
4 问题原因
使用高版本IAR打开低版本软件创建的工程时,会提示格式是老的,需要转换。如下图所示:
IAR软件将低版本工程转换为高版本工程时,会存在问题。
5 总结和建议
当更新IAR版本后,为了避免出现一些奇怪的问题。针对老版本的工程,不要直接转换,最好的办法是直接重新创建新工程。