前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK--设备作为TCP客户端,实现上位机TCP服务器和RS485之间的数据传输

6-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK--设备作为TCP客户端,实现上位机TCP服务器和RS485之间的数据传输

作者头像
杨奉武
发布2024-04-15 09:19:43
1410
发布2024-04-15 09:19:43
举报
文章被收录于专栏:知识分享知识分享

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

说明

这节测试的是让设备连接路由器,然后设备以TCP客户端的形式连接TCP服务器,

连接上服务器以后, TCP服务器发送给设备的数据会通过设备的RS485发送出去

设备从RS485接收的数据会发送到TCP服务器.

测试

1,打开这节的工程

这节是让设备连接路由器, 根据自己的需求配置模组连接的路由器 和 RS485波特率,  和 TCP服务器地址

2,连接上RS485设备

3,我这边使用调试助手创建个服务器

4,如果接收到数据会显示

5,发送数据

这边使用串口调试助手

程序说明

1,TCP客户端接收到TCP服务器的数据就把数据通过RS485发送出去

代码语言:javascript
复制
xRingbufferSend(RingbufHandleTxUart1, data, len, pdMS_TO_TICKS(2));
    xTaskNotifyGive(TaskHandleTransmitUart1);//发送通知

2,通过RS485接收的数据发送给TCP服务器

代码语言:javascript
复制
            //接收的数据发送到TCP服务器
            tcpClientTransmit_t* tcpClientTransmit = (tcpClientTransmit_t*)malloc(sizeof(tcpClientTransmit_t));
            if(tcpClientTransmit != NULL )
            {
                uint8_t *p_data = (uint8_t *) malloc(len);//待发送数据的个数

                
                memcpy(p_data, uart1_struct.ring_buf_copy, len);//取8字节CAN数据

                tcpClientTransmit->p_data = p_data;
                tcpClientTransmit->data_len = len;//发送数据的个数
                tcpClientTransmit->tcpClient = &tcpClient[0];//使用哪个客户端发送
                /*把消息发送到消息队列*/
                if (xQueueSend(QueueHandleTcpClientTransmit, &tcpClientTransmit, pdMS_TO_TICKS(10)) != pdPASS)
                {
                    free(tcpClientTransmit);
                    free(p_data);
                }
            }

.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
    • 这节测试的是让设备连接路由器,然后设备以TCP客户端的形式连接TCP服务器,
      • 连接上服务器以后, TCP服务器发送给设备的数据会通过设备的RS485发送出去
        • 设备从RS485接收的数据会发送到TCP服务器.
        • 测试
          • 1,打开这节的工程
            • 这节是让设备连接路由器, 根据自己的需求配置模组连接的路由器 和 RS485波特率,  和 TCP服务器地址
          • 2,连接上RS485设备
            • 3,我这边使用调试助手创建个服务器
              • 4,如果接收到数据会显示
                • 5,发送数据
                  • 这边使用串口调试助手
              • 程序说明
                • 1,TCP客户端接收到TCP服务器的数据就把数据通过RS485发送出去
                  • 2,通过RS485接收的数据发送给TCP服务器
                  相关产品与服务
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档