女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡述如何使用Harmony的動態驅動和狀態機來編寫程序

算法&編程學院 ? 來源:網絡整理 ? 2018-02-01 03:33 ? 次閱讀

上一篇中介紹了UART的收發數據操作,那些操作都是基于外設庫的,而不是采用Harmony的動態驅動,也沒有采用狀態機的機制。本篇就來介紹一下如何使用Harmony的動態驅動和狀態機來編寫程序。其實狀態機是挺簡單的,就是事先定義好可能發生的哪些狀態,然后主循環里根據不同的狀態進行不同的處理,這個在項目中也是比較常用的方法。

注意Dynamic的驅動對象都需要有一個Open動作來創建一個Handle,后續所有操作都是用Handle來代表這個驅動對象。所有動態驅動的中斷都是采用注冊回調函數的方式來使用,無需到system_init中添加,也無需自己清除中斷標識,驅動已經自己完成了。

另外要注意的一點是,串口接收一個字節后進入了中斷,如果不使用Read接收一下,那么后續就再也無法進入中斷,就會出現僅中斷一次的現象,因此,也不要在中斷中進行耗時操作,避免沒有及時接收數據,導致數據殘缺不全。

先在app.h文件中定義狀態機和UART要使用的相關變量結構體,使用結構體也是滿方便的。

1

在app.c中編寫應用程序,包含頭文件之后,初始化函數編寫,這里的初始化不是底層的初始化,而是初始化UART的相關變量,并創建句柄。第一步要initial(open一個客戶端),然后判斷創建的客戶端時候有效,有效的話,就創建中斷回調函數,中斷程序的內容直接在回調函數里編寫就可以了。

2

編寫中斷回調函數內容程序,收到一個數據后存儲到數據緩沖區,并置位接收完成標志位

3

發送數據的函數,發送采用查詢方式

4

編寫Uart_Task()函數,狀態里就在這里處理,初始化狀態時進行初始化,然后進入接收數據狀態,接收到數據后回發,并在OLED上顯示接收到的字節數。

5

在APP_Tasks()中循環調用Uart_Task(),以處理接收到的數據。

6

編譯,下載程序到開發板,打開串口軟件測試

7

OLED顯示效果

092736phxohksn4x4kxd44

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 狀態機
    +關注

    關注

    2

    文章

    493

    瀏覽量

    28067
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    為什么PIC32的Harmony編寫沒有交互的狀態機

    重新定義,但是基于和聲方法,這些狀態機也基于中斷在不同的文件中從一個狀態移動到另一個狀態。這個應用程序運行良好,但我詢問您的意見,如果這種方法是正確的或可以改進的,或者如果您有任何SU
    發表于 08-12 08:36

    什么是有限狀態機

    在嵌入式,機器人領域,由于多的復雜邏輯狀態,我們編寫程序的時候不得不考慮很多種情況,容易造成功能間的沖突。有限狀態機(finite-state machine),簡稱狀態機,是一種表示
    發表于 12-20 06:51

    狀態機原理在控制程序設計中的應用

    計算機控制系統的控制程序具有有限狀態自動機的特征 可以用有限狀態機理論描述。利用狀態轉移圖和條件編碼可以更直觀和清晰地描述
    發表于 03-22 15:30 ?1次下載

    VFP9.0編寫程序

    數據庫編寫程序,VFP9.0編寫程序,中文版利用數據庫知識編寫可以運行程序
    發表于 06-21 16:42 ?1次下載

    狀態機VHDL程序

    狀態機VHDL程序,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-11 15:51 ?5次下載

    簡述使用QII狀態機向導如何創建一個狀態機

    如何使用QII狀態機向導創建一個狀態機
    的頭像 發表于 06-20 00:11 ?4472次閱讀
    <b class='flag-5'>簡述</b>使用QII<b class='flag-5'>狀態機</b>向導如何創建一個<b class='flag-5'>狀態機</b>

    狀態機如何簡化PLC程序編寫

    在PLC程序編寫過程中,可以使用狀態機的控制思路,將一些復雜的控制過程使用狀態機的方法處理。這里簡單給大家介紹一下什么是狀態機?如下圖所示
    的頭像 發表于 09-10 14:44 ?4487次閱讀
    <b class='flag-5'>狀態機</b>如何簡化PLC<b class='flag-5'>程序</b>的<b class='flag-5'>編寫</b>

    FPGA:狀態機簡述

    本文目錄 前言 狀態機簡介 狀態機分類 Mealy 型狀態機 Moore 型狀態機 狀態機描述 一段式
    的頭像 發表于 11-05 17:58 ?7918次閱讀
    FPGA:<b class='flag-5'>狀態機</b><b class='flag-5'>簡述</b>

    基于事件驅動的有限狀態機介紹

    ? 一、介紹 EFSM(event finite state machine,事件驅動型有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。 EFSM的設計
    的頭像 發表于 11-16 15:29 ?2532次閱讀

    狀態模式(狀態機)

    share,作者:亞索老哥)),原來狀態機還可以這么簡單地玩~~亞索老哥提出的狀態機六步法(1)、定義狀態接口(2)、定義系統當前狀態指針(3)、定義具體
    發表于 12-16 16:53 ?9次下載
    <b class='flag-5'>狀態</b>模式(<b class='flag-5'>狀態機</b>)

    基于事件驅動的有限狀態機介紹

    EFSM(event finite state machine,事件驅動型有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。
    的頭像 發表于 02-11 10:17 ?1250次閱讀

    自動生成程序狀態機代碼狀態機建模方法

    首先運行fsme命令啟動狀態機編輯器,然后單擊工具欄上的“New”按鈕創建一個新的狀態機。FSME中用于構建狀態機的基本元素一共有五種:
    的頭像 發表于 09-13 16:50 ?1546次閱讀
    自動生成<b class='flag-5'>程序</b><b class='flag-5'>狀態機</b>代碼<b class='flag-5'>狀態機</b>建模方法

    如何使用FSME定制狀態機

    定制狀態機 目前得到的狀態機已經能夠響應來自外部的各種事件,并適當地調整自己當前所處的狀態,也就是說已經實現了狀態機引擎的功能,接下來要做的就是根據應用的具體需求
    的頭像 發表于 09-13 16:57 ?1792次閱讀
    如何使用FSME<b class='flag-5'>來</b>定制<b class='flag-5'>狀態機</b>

    虛擬linux怎么編寫程序

    在虛擬Linux上編寫程序是一項非常常見且有用的任務。無論是開發一個簡單的腳本、一個Web應用程序還是一個復雜的軟件項目,Linux提供了強大的工具和環境幫助你進行編程。本文將詳細
    的頭像 發表于 11-17 10:08 ?2270次閱讀

    怎樣在codeblocks上編寫程序

    在CodeBlocks上編寫程序是一項相對簡單而又重要的任務。CodeBlocks是一個廣泛使用的集成開發環境(IDE),它能夠幫助程序編寫、編譯和運行他們的代碼。在本篇文章中,我們將詳細介紹
    的頭像 發表于 11-26 09:26 ?2111次閱讀