关于嵌入式系统通信协议及具体程序实现汇总(持续更新中······)

   通信是嵌入式系统设计中非常重要的一个环节,本文总结几种常用的通信方式:串口、SPI、IIC、CAN、TCP/IP、WIFI等。每种通信方式简单说明其原理(如果大家还有疑问请自行百度),重点在于它们的程序实现和一些重要的调试心得。本文牵涉到的程序,笔者都是在stm32f10xxx上面调试验证的,另外用到的一些集成模块笔者也会做大致的讲解。限于篇幅,笔者无法将所有的代码粘贴出来,如有需要大家可以搜索微信公众号“24K纯学渣”上获取。

  • 蓝牙透传模块CC2541的调试
       上文主要内容为该模块使用前工作模式的配置和某些应用场合的具体C语言实现。这种模块支持多种通信场合,比如:模块之间相互通信、模块与手机通信、模块与电脑(上位机)通信等,其中后两者是通过串口实现、第一种的模块间通信是基于蓝牙通信实现的。用下面的图大致说明:
    在这里插入图片描述
    解释一下上图:如果是上位机跟嵌入式系统通过一对蓝牙透传模块通信,则上位机上需要用串口调试助手软件辅助,且上位机和其中一个蓝牙透传模块相连时也需要USB-TTL模块;如果是手机跟嵌入式系统通信,则需要手机上安装蓝牙透传助手APP。另外,使用CC2541模块之前还需要手动配置该模块的工作方式,比如主从关系、波特率、蓝牙配对方式等。上面的文章都详细地做了说明。

  • 基于SPI通信协议的NRF24L01模块的使用
    上面的文章主要介绍了基于SPI总线的无线通信模块的使用,其通信关系图如下:
    在这里插入图片描述

   其中,单片机和上位机之间通过串口通信,通过串口,上位机不仅可以向单片机发送控制命令以修改单片机的工作状态,而且还能接收单片机发回来的数据,监测单片机的工作状态。单片机和NRF无线模块之间通过SPI总线通信,由于NRF模块之间支持一对多通信(即一个模块发,多个模块可同时接收到信息),如果一个单片机连接多个NRF模块,通过合理地操作SPI的片选控制引脚就能构建局域通信网络,这一点相对上面提到的蓝牙透传模块来说,不用再用前配置该模块,可以说非常方便!

发布了25 篇原创文章 · 获赞 9 · 访问量 6193

猜你喜欢

转载自blog.csdn.net/qq_42144047/article/details/88651376