查看: 1588|回复: 1

[其他] 每天一个问题35天5问 :串行模块与微控制器通信的一种方法

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2015-9-28 22:23:34 | 显示全部楼层 |阅读模式
    本帖最后由 lkl0305 于 2015-9-29 09:58 编辑


    一、问题提出:
    现在微控制器外围有很多通信模块采用串口协议,比如串口WIFI、串口蓝牙等,这类串口模块如何与微控制器之间编程通信呢?

    二、解决办法:
    1、经过分析,此类模块,或者微控制器与很多设备串口通信时,要么通信协议的长度固定。
    2、如果不固定的话,大多数都有明确的开始和结束标志帧(数据)。比如AT指令。
    3、遇到此类情况的话,可以使用状态机的思路来实现通信。
    4、大致方法描述一下:
    (1)首先定义一个状态变量,赋一个初值比如0。
    (2)然后监控串口数据,如果接收到的数据不是起始标志,丢弃。如果接收到了其实标志,状态赋值1,开始接收数据。
    (3)之后接收数据,存储在缓冲区中,并判断是否为停止,不是,继续接收,
    (4)如果接收到了停止标志,则置状态变量为2,表示成功接收到一组数据,就可以处理本次接收了。
    5、根据这个方法就可以写出相应的程序了。

    三、感想与收获:
    1、这种状态机的思路是一种很实用又简单的方法。

    我知道答案 目前已有1人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-30 10:33:14 | 显示全部楼层
    学习了,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 05:33 , Processed in 0.089813 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表