• 如何编写应用程序


    **每次要编写嵌入式应用程序的时候总是不知道该如何入手,于是简单的研究了下现在普遍的扫码支付模块的SDK开发结构。**

    1. 模块化

    拿到一个项目需求时,我们需要看下该项目分为几个模块,每个模块之间又是以什么形式连接的。模块化会使程序结构清晰,维护也会方便很多。比如说扫码支付模块就分为三个部分,底层core部分,mqtt功能模块,uart功能模块。分好了模块之后开始入手写程序了。

    2.模块初始化

    在函数入口写各模块的初始化程序,底层core部分,里面的许多功能底层已经能够初始化好了,我们只要等待消息即可。mqtt模块我们需要建立一个task,该task有四个功能函数,连接,关闭,读,发送。
    uart功能模块有两个功能函数,读和写。初始化也就是各种准备工作,每个模块都需要,就不写了。

    3.工作逻辑

    1.底层自动附着上网络后,会有消息上报,消息的分类用switch函数。在这种情况下,mqtt才可以去连接服务器。连接好后,mqtt线程阻塞等待底层的读消息上报。(也有初始化的时候将读函数当作回调函数传入底层的)。
    2.串口收到消息上报时(也有在初始化的时候将读函数当作回调函数传入底层的),一顿处理之后(组协议包),调用mqtt发送接口将数据发送给服务器。
    3.mqtt收到服务器发来的消息之后,一顿分析之后(分析协议包),调用uart写函数将数据发送给外设主板,至于外设怎么再操作就不用关系了(外设与uart口之间也有串口协议)。

    ![](https://img2018.cnblogs.com/blog/1532705/201907/1532705-20190707231100211-1586713324.jpg)
    不怕世界大,就怕格局小
  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/wangjian1226/p/11148757.html
Copyright © 2020-2023  润新知