STM32通过广和通ADP-L610-Arduino进行TCP/IP通信

本文介绍了如何使用STM32通过广和通ADP-L610-Arduino板进行TCP/IP通信,参与嵌入式大赛的数据传输项目。文章详细阐述了从材料准备、服务器环境搭建、开发板配置到代码实现的全过程,特别强调了单线程TCP服务端的实现和阿里云ECS服务器的配置。虽然简化了初始化和检测过程,但建议增加日志功能以方便调试。
摘要由CSDN通过智能技术生成

STM32通过广和通L610进行TCP/IP通信

一、 写在前面
  本次参加嵌入式大赛,使用了广和通的ADP-L610-Arduino板子进行通信。项目要求大概是本地上传数据到服务器,服务器接收后发送给客户端,实现数据的传输。在这个项目中需要用到两个客户端,所以需要实现服务端的多线程操作。多线程我具体还没整明白,这篇文章介绍的还是单线程。TCP/IP通信协议的可靠性、可操作性、安全性等几个特征,正好是我这次项目所需要的。前前后后整了两天,写下这篇博客,分享下经验的同时也为自己写下备忘录。

二、材料准备

  1. STM32开发板
  2. ADP-L610-Arduino板子
  3. 公网IP
    【注意】:实际上不限于STM32开发板,只要能进行串口通信的板子就行。运营商通常不会提供静态公网IP,所以需要我们购买一个服务器,下面会提供阿里云ECS云服务器的简单使用方法。

三、CS架构TCP/IP通信

  Socket在应用层和传输层之间的一个抽象层,它把 TCP/IP 层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket 起源于 UNIX,在 UNIX 一切皆文件的思想下,进程间通信就被冠名为文件描述符。Socket 保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个 Socket 对象,然后通过 Socket 对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。
  本示例代码的头文件是linux平台的,可以让服务端循环等待客户端连接,但目前仅支持单线程连接,多线程连接等我用上了会更新。

1.服务端server.c

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>

#define PORT 8088	/*端口号*/  
#define BACKLOG 1	/*最大监听数*/ 

int main(){
   
    int sockfd,new_fd;	/*socket句柄和建立连接后的句柄*/
    struct sockaddr_in my_addr;	/*本方地址信息结构体,下面有具体的属性赋值*/
    struct sockaddr_in their_addr;	/*对方地址信息*/
    int sin_size;
    int client;
    sockfd=socket(AF_INET,SOCK_STREAM,0);	//建立socket 
    if(sockfd==-1)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值