高级会员
- 积分
- 994
- 金钱
- 994
- 注册时间
- 2016-7-22
- 在线时间
- 318 小时
|
本帖最后由 hi我歌月徘徊 于 2017-5-4 18:14 编辑
1.源程序是使用429例程当中的内存管理实验,首先移植了enwin裸机,按照pdf的方法移植下来,下载演示,出了问题,触摸屏抖动的情况,好在教程里提到了这个问题,降低rgb的像素时钟,但是没说具体位置 搜索下LTDC_Init函数,然后根据屏的id选择不同的配置,我的是lcdid==0X7016 LTDC_Clk_Set(300,2,RCC_PLLSAIDIVR_4);//设置像素时钟 45Mhz
2.在此基础上移植lwip裸机,原来移植过一次,没有成功,原因在于对lwip管理机制的不熟悉,经过一段时间的学习,今天顺利移植。
按照教程移植完lwip的裸机程序后,需要修改以下几个方面:
1)lan8720的复位引脚在iic的扩展io芯片上,要添加驱动程序,刚开始我没加,结果初始化完成,网口的led都不亮,是因为网卡没初始化。
2)lwip内核有很多周期性定时器,相应的很多定时器函数需要被调用,所以在无操作系统的情况下,需要使用定时器为lwip内核提供时钟。lwip裸机例程当中使用的定时器3,而在enwin的例程中,定时器3已经被用作emwin的事务处理 了,定时器4被用来刷屏了,所以我就使用定时器5来作为lwip的时钟。在中断函数当中只需要把 lwip_localtime +=10; //加10
3)然后就是在主函数中调用lwip_periodic_handle(); //LWIP内核需要定时处理的函数
把它放到GUIDEMO_Main()函数下_Main函数下就ok了
4)这时下载程序,会看到lwip初始化不成功,最终原因是HAL_ETH_Init(D_Handler)失败 原因可能是超时 修改下stm32f4xx_hal_eth.c中的两个宏 LINKED_STATE_TIMEOUT_VALUE AUTONEGO_COMPLETED_TIMEOUT_VALUE改大一些,我是直接加了个0,下载进去,初始化成功,ping ok
emwin lwip无操作系统移植.zip
(9.12 MB, 下载次数: 116)
|
|