如题使用STMF4 + DM9000 + LWIP搭建tcp服务器,现有新旧板子和新旧程序。新旧班子只有外部晶振不同。
旧板子使用12M外部晶振,旧程序的系统时钟设置HSE_VALUE为12M,PLL_M为25,如下图。
新板子使用10M外部晶振,新程序重写的架构,开始设置HSE_VALUE为10M,PLL_M为10,此时串口可以正常通信,但网络一直ping不通。
然后我用旧程序不做任何修改直接下载到新板子中,网络居然可以通,期初我以为是驱动还是初始化啥的不对,一点一点看了大半天没找出问题,后来我照着旧程序把我新程序设置也改成HSE_VALUE为12M,PLL_M为25,然后网络就通了,但是串口发乱码。
这个问题真的把我搞晕了,旧程序的时钟设置我也没搞懂,这样设置系统时钟算出来12/25*336/2大概是八十多mhz吧,f4不是系统时钟168mz吗。
另外我的认知里lwip跟时钟有关系的只有定时器给lwip一个基准时钟,我之前看定时器中断也一直是正常触发的,DM9000好像也和时钟没什么关系,现在对系统时钟的认识完全被推翻了
|