返回列表 发新帖我要提问本帖赏金: 30.00元(功能说明)

[APM32F4] 【极海APM32F407IG Tiny Board开发板测评】TCP client & TCP server

[复制链接]
1503|3
 楼主| forgot 发表于 2023-7-27 10:22 | 显示全部楼层 |阅读模式
本帖最后由 forgot 于 2023-7-27 11:38 编辑

        首先很高兴通过这次申请,江苏的代理商还大老远来我们公司做了一次当面沟通,便于后续做进一步的技术支持和采购合作。其实我拿到板子已经挺长时间了,因为对APM32片子已经比较熟悉了,这次主要是测试一下F407以太网TCP功能模块的应用。
手册.png

硬件环境搭建:
环境.png

        先是下载了APM32F407-Tiny\APM32F4xx_SDK_v1.3,在Examples\ETH下面是有ETH_Ping和ETH_TCP_client两份Demo,例程可以实现PA9,PA10串口进行网络参数打印,所以将串口也接到PC上。

        但是APM32F4xx_SDK_v1.3中并没有看到ETH_TCP_server例程,所以就到APM32F4xx_EVAL_SDK_V1.0\Examples\ETH\ETH_TCP_server中复制了相关内容过来,稍微改了一下。

PING测试:
ping.jpg

TCP客户端实验:
电脑IP地址为:192.168.2.101;
板子IP配置为:192.168.2.88;
以PC机作为服务端,监听6000端口。
通过运行效果如下:
  1.         if ((APM_TINY_PBGetState(BUTTON_KEY1)==0)&&(flag==0)) {
  2.             APM_TINY_LEDOn(LED2);
  3.             if (EthLinkStatus == 0) {
  4.                 /** connect to tcp server */
  5.                 printf("\n\rConnect TCP server \r\n");
  6.                 IP4_ADDR( &DestIPaddr, COMP_IP_ADDR0, COMP_IP_ADDR1, COMP_IP_ADDR2, COMP_IP_ADDR3 );
  7.                 tcpc_echo_init(&DestIPaddr,COMP_PORT);
  8.                 flag=1;
  9.             }
  10.         }
  11.         if ((APM_TINY_PBGetState(BUTTON_KEY2)==0)&&(flag==1)) {
  12.             APM_TINY_LEDOff(LED2);
  13.             printf("\n\rDisconnect TCP server \r\n");
  14.             tcpc_echo_disable();
  15.             flag=0;
  16.         }
复位后,串口打印网卡参数信息;
通过按钮KEY1,实现TCP连接。
用服务发送bbs.21ic.com,串口也会打印:received message:bbs.21ic.com
通过按钮KEY2,实现TCP断开。
tcp-c.jpg


TCP服务端实验:
电脑IP地址为:192.168.2.101;
板子IP配置为:192.168.2.88;
以板子机作为服务端,监听5000端口。
通过运行效果如下:
  1.         if ((APM_TINY_PBGetState(BUTTON_KEY1)==0)&&(flag==0)) {
  2.             APM_TINY_LEDOn(LED2);
  3.             if (EthLinkStatus == 0) {
  4.                 /** create tcp server */
  5.                 printf("\n\rcreate TCP server IP: %d.%d.%d.%d:%d\n",
  6.                        IP_ADDR0,IP_ADDR1,IP_ADDR2,IP_ADDR3,LOCAL_SERVER_PORT);
  7.                 tcps_echo_init(LOCAL_SERVER_PORT);
  8.                 flag=1;
  9.             }
  10.         }
  11.         if ((APM_TINY_PBGetState(BUTTON_KEY2)==0)&&(flag==1)) {
  12.             APM_TINY_LEDOff(LED2);
  13.             printf("\n\rclose TCP server\n");
  14.             tcps_echo_disable();
  15.             flag=0;
  16.         }
复位后,串口打印网卡参数信息;
通过按钮KEY1,实现TCP服务创建。
用服务发送geehy.com,串口也会打印:received message:geehy.com
通过按钮KEY2,关闭TCP服务。
tcp-s.jpg

        因为用的是lwip协议栈,所以UDP的相关操作也比较简单,用lwip相关函数就好了。
        提点意见就是demo中相关网络的应用例程太少了,并没有一些厂家那样做类似WebServer、MQTT、DNS之类的应用,连UDP都没看到。如果可以进行补充,这样对于新手会友好一点。

        最后也祝极海MCU越做越好!

打赏榜单

Gfan 打赏了 30.00 元 2023-08-17
理由:APM32F407IG Tiny Board精选测评

再见十分钟 发表于 2023-7-27 11:04 | 显示全部楼层
点个赞!
happypcb 发表于 2023-7-27 11:07 来自手机 | 显示全部楼层
学习一下
leslietian 发表于 2023-9-20 08:21 | 显示全部楼层
这个板子的demo关于网络这块确实有点少,不过可以参考其他几个芯片的demo,都一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部