接着上篇博客话题,继续我的项目总结,上篇讲到出现了,error:A1586E: Bad operand types(UnDefOT,Constant) for operator(,按照前面提到的方法,编译已经通过,终于可以安安心心地把程序下载到板子上了。用STM32CubeMX配置的过程如下:
我期待地等了一分钟,发现板子毫无反应,以太网接口亮都不亮,网线是插了又拔,拔了又插,电源是开了又关,关了又开,板子就是毫无反应。然后拿出硬件原理来对照发现配置中少了一个复位引脚,如果不对接口复位,以太网接口是无法工作的,于是对配置进行了如下修改:
硬件修改完毕之后,在程序也要做一定的修改,在static void low_level_init(struct netif *netif)这个函数中,我们要加一段复位代码如下所示:
/* USER CODE BEGIN MACADDRESS */
HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET); //复位
for(x=0;x<4000;x++)
{
y++;
}
HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_SET); //复位结束
/* USER CODE END MACADDRESS */
编译之后,下载到板子中,发现以太网接口亮了。我觉得这一切应该可以圆满结束了,一切就绪准备ping一下,发现是我想多了,板子亮了,但依然无法工作,还是有坑,这些坑会在后面的博客中继续更新。