[STM32F4][步步深入学网络001]环境搭建

序言

本系列文章将详细介绍通过STM32从零开始进行网络开发的全过程,以对以前的学习过程做个记录和总结,同时也能帮助到一些即将入坑的童鞋。

网络协议栈为LWIP,计划将涉及ARP/ICMP/IGMP/TCP/UDP/TLS/HTTP/MQTT/TFTP/FTP /NFS/NTP等等,最后还会介绍一个阿里IOT的实践例程。

硬件采用STM32 MAC+外部PHY(DP83848);软件RTOS的选用很纠结,本想使用rtthread,一款不错的国产开源免费RTOS,插件多,功能强大。但它的设备框架介绍起来有些麻烦,配置也不友好,需要介绍的东东太多(scons、env等)。本着尽量直奔主题、通用的原则,决定使用世界范围内使用很广泛且免费的FreeRTOS来实验。

另外,有问题、建议,请留言;需要实验原理图、源码、工程等等,请私聊。

废话不多说,Let’s Go!

准备工作

编译器、编辑器: Keil MDK5集成开发环境
调试器、下载器:STLINK V2
相关软件:putty、wireshark、python 3.x、网络调试助手、STM32 CubeMX

另外,个人主板的网络硬件配置为: STM32F407ZGT6+DP83848

硬件平台搭建

为降低硬件难度及简化说明,整个硬件部分只用到一个串口1(打印日志),一个网络MAC,一个RTC(NTP实验会用到这个实时时钟)。STM32CubeMX工程引脚分配如下:
STM32CubeMX工程
在使用STM32CubeMX配置时,需要注意:
(1)ETH模块里记得选择合适的PHY,我的是DP83848
(2)建议配置串口中断/DMA,ETH中断接收等等
(3)时钟树的配置不要错了。
我的时钟配置如下:
时钟树
配置完成后生成MDK5工程:
生成MDK5工程
CubeMX生成的MDK工程目录如下:
工程目录
此时,就可以直接使用此MDK5进行开发了,免去了大量的硬件芯片配置工作,更专注于应用代码的开发,相当方便。先来简单测试一下,在MDK-ARM文件夹中打开MDK工程文件(后缀以uvprojx结尾),如下:
在这里插入图片描述
找到main.c文件大众的main函数,在其while(1){}循环体中,添加如下代码:

HAL_UART_Transmit_DMA(&huart1,(uint8_t *)"hello world!\r\n",sizeof("hello world!\r\n"));
HAL_Delay(1000);

添加demo代码
此代码将每秒向串口1输出一次hello world!

保存、编译、下载,打开串口终端软件(建议PUTTY)验证功能,如图:
运行结果

附,外部PHY芯片(DP83848)参考电路如下:
DP83848

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值