STemwin 移植与使用问题记录

1.移植STemwin到STM32F407上,跑Demo程序均正常,下一步根据开发手册移植到UCOSIII。由于之间单独移植过UCOSIII ,现在在已经移植UCOSIII的基础项目上移植STemwin,本来以为会很顺利,毕竟STemwin和UCOSIII都单独移植成功了。。。果然 ,根据手册以及官方例程,走的很顺伦理,编译成功,么的错误,下载,运行,结果,Demo跑了4个后带着我整个UCOS系统跑崩了,Debug直接进HardFault,简单的排查了一下问题,就出在STemwin任务里,我实在没有找到具体出错的位置,只能对照官方例程,发现在FSMC的初始化中,有一些时序上的错误导致我的程序跑飞,设置如下:

    readWriteTiming.FSMC_AddressSetupTime = 0x02;	 //地址建立时间为2个HCLK
	readWriteTiming.FSMC_AddressHoldTime = 0x00;	 //
	readWriteTiming.FSMC_DataSetupTime = 0x04;		 地址保持时间为3和HCLK
	readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
	readWriteTiming.FSMC_CLKDivision = 0x00;
	readWriteTiming.FSMC_DataLatency = 0x00;
	readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;	 //

裸机跑的时候,设置的参数为

    readWriteTiming.FSMC_AddressSetupTime = 0x00;	 
	readWriteTiming.FSMC_AddressHoldTime = 0x00;	 
	readWriteTiming.FSMC_DataSetupTime = 0x08;		
	readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
	readWriteTiming.FSMC_CLKDivision = 0x00;
	readWriteTiming.FSMC_DataLatency = 0x00;
	readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;	 

裸机跑STemwinDemo都是正常运行的,为什么移植UCOSIII时,时序就不对了,主要在地址建立时间 readWriteTiming.FSMC_AddressSetupTime 不可为0,但是,裸机上它为啥可以正常运行呢。。。

还是我没有找到本质的问题,希望大家帮我解惑!


版权声明:本文为m0_37722666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。