久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3952|回復: 1
打印 上一主題 下一主題
收起左側

樹莓派串口TCP透傳

[復制鏈接]
跳轉到指定樓層
樓主
ID:313227 發表于 2018-4-21 17:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
此代碼用于解決有些朋友想通過樹莓派連接單片機,并和單片機雙向數據透傳,電腦或者手機均可以通過tcp的方式連接到樹莓派并直接與單片機通信。完整工程請下載附件,進入debug目錄make即可
/*
============================================================================
Name        : test.c
Author      : Zhitao Lyu
Version     :
Copyright   : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "sys/types.h"
#include "sys/stat.h"
#include <dirent.h>
//#include<sys/socket.h>
#include "common.h"

int accept_cmd(int fd_tcp,int fd_serial,struct sockaddr_in *addr_ser)
{
        socklen_t sin_size = sizeof(struct sockaddr_in);
        struct sockaddr_in add_cli;
        socket_t sockfd_Cli=0;
        unsigned char recvline[BuffSize+1]="";
        int n=0;
        bzero(&add_cli,sizeof(add_cli));
        sockfd_Cli=accept(fd_tcp, (struct sockaddr *)(&add_cli), &sin_size);
        printf("Accept from IP: %s\n",inet_ntoa(add_cli.sin_addr));
        while(1)//per buff
        {
                n=recv_nb(sockfd_Cli,recvline,BuffSize);
                if(n>0){
                        writeserial(fd_serial, recvline, n, NULL);
                }
                else if(n==0)sleepms(10);
                else if(n<0)break;//end connection
           n=readserial(fd_serial,recvline, BuffSize, NULL);
           if(n>0) send(sockfd_Cli,recvline,n,0);
        }
        bzero(&add_cli,sizeof(add_cli));
        return 0;
}
int main(int argc,char *argv[]) {
        int err=0;
        int fd_tcp=0;
        int Port=5221;
        struct sockaddr_in addr_ser;

        int fd_serial=0;
        if(argc>1)
        {
                Port=atoi(argv[1]);
                if(Port<1024)
                        Port=5221;
        }

        fd_tcp=opentcpserver(&addr_ser,Port);
        if(fd_tcp==-1){
                printf("open tcpsever err\n");
                return 0;
        }
        else{
                printf("Start Listening,Port=%d\r\n",Port);
        }
        //open serial

        fd_serial=   openserial(SERIAL_PATH);
    if(fd_serial==-1)
    {
            close(fd_tcp);
            printf("openserial err msg:%d\r\n",err);
        return 0;
    }
    err=setserial(fd_serial,4,8,'n',1);//9600 8 n 1
    if(err==-1)
    {
            close(fd_tcp);
            close(fd_serial);
            printf("setserial err msg:%d\r\n",err);
        return 0;
    }

        while(1)
        {
                err=accept_cmd(fd_tcp,fd_serial,&addr_ser);
                if(err==8)break;
                printf("Accept msg:%d\n",err);
        }
        close(fd_tcp);
        close(fd_serial);
        printf("Bye!\r\n");
        return 0;
}


CoreControler_Single.zip

127.27 KB, 下載次數: 23, 下載積分: 黑幣 -5

樹莓派串口tcp透傳

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:511468 發表于 2019-4-13 20:11 | 只看該作者
感謝大佬貢獻,下載用用,幫頂。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久99久久99久久 | 大乳boobs巨大吃奶挤奶 | 国产91久久久久久久免费 | 超碰97人人人人人蜜桃 | 久久91av| 热久久999| 一区二区影院 | 亚洲精品在线视频 | 欧美视频在线免费 | 涩涩视频在线播放 | 亚洲网站在线观看 | 亚洲精品美女 | 日韩视频中文字幕 | 欧美一级久久 | av高清 | 亚洲三区视频 | 国产高清久久久 | 欧美一区二区在线播放 | 蜜桃av人人夜夜澡人人爽 | 亚洲欧美综合精品久久成人 | 成年人的视频免费观看 | 国产精品毛片一区二区三区 | 欧美日韩综合视频 | 欧美a级网站 | 成人小视频在线观看 | 国产一区二区中文字幕 | 视频一区二区三区四区五区 | 欧美日韩中文在线 | 91性高湖久久久久久久久_久久99 | 五月婷婷导航 | 午夜精品一区二区三区在线 | 亚洲欧洲精品一区 | 99热精品在线 | 伊人久久综合 | 日韩精品一区二 | 中文精品视频 | 91视频www.| 亚洲精品成人网 | 婷婷在线免费 | 欧美成人免费在线 | 综合伊人 |