1.未在MPU(内存保护单元)中将用到的SRAM对应地址的cache禁用,导致FSMC口发送数据和预期不一致
2.未将FSMC相关引脚复用为FSMC功能,导致极其离奇的问题。如FSMC发送函数放在if(res==OK)语句之前可以正常发送,逻辑分析仪能抓到数据。放在if(res==OK)之中就不会有任何数据发出来,如果改为if(1)就能正常发送。
3.写数据至stm32自带的flash,写-读 可正常读出,写-单片机复位-读会读出很多0xFF,关闭I-Cache后问题解决。
根本原因还是自己对32上一些基础硬件的掌握不够扎实