跨语言、跨设备的socket通信(FriendlyArm开发板与Windows 10PC机进行通信)

        第一次尝试用PC机去控制FriendlyArm友善之臂开发板, 以下的成果是本学期嵌入式系统课程的一个课程设计, 希望能帮助大家了解FriendlyArm友善之臂开发板的使用.

注: 下图中我通过PC端的Linux虚拟机, 以ssh命令远程控制ARM开发板, 远程控制ARM开发板的方法在博文最后会有说明.

        一开始对于以跨语言方式完成socket通信有些头疼, 但后来发现不同语言对于socket通信的实现仅仅是实现形式不同, 基本的原理和流程是基本相同的.

        这个课程设计要求我们通过PC机向ARM开发板发送命令, ARM开发板在接收到不同的命令后, 用其两个发绿色光的LED灯分别以00/01/10/11(0-> 灭, 1 -> 亮)方式做出回应. 补充说明一下, 我将命令分为四大种类: 电压、电导率、电流mA、调零mV(只有电导率档才可调电导挡位). 这里实现的是PC发命令至ARM开发板, 故下图所制作的可视化操作界面仅是命令选择的载体, 在此并无其它含义, 大家不必深入思考.

        两设备的通信采用TCP协议, PC端作为client, ARM开发板端作为server: 另外PC端可自由开启或关闭程序(窗体).

        ARM开发板端的server.c实现了多客户连接进程并发处理这一功能, 这也是很重要的一点.

        下面说一下该课程设计的启动方式.

        1. 开启PC端的热点.

        2. 在ARM开发板端连接PC端的热点, 这里ARM开发板的IP地址为 192.168.137.243.

        3. 在开发板端终端输入 gcc -o server server.c, 之后输入命令 sudo ./server.

        4. 在PC端启动窗体程序, 选择某一命令, 点击发送即可.

        5. 此时ARM开发板的两个LED灯会随着PC端选择命令的不同而展现出不同的亮灭组合.

//Led_control.h
void led_control(int L1, int L2)
{
    //system("echo 43 > /sys/class/gpio/export");
    //system("echo 44 > /sys/class/gpio/export");
    //以上两条语句在第一次运行server时取消注释, 之后变为注释
    if(L1 == 0 && L2 == 0)//D1 D2 灭
    {
        system("echo low > /sys/class/gpio/gpio43/direction");
        system("echo low > /sys/class/gpio/gpio44/direction");

    }
    else if(L1 == 0 && L2 == 1)//D1灭 D2亮
    {
      
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好梦成真Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值