在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡述如何使用Harmony的動(dòng)態(tài)驅(qū)動(dòng)和狀態(tài)機(jī)來編寫程序

算法&編程學(xué)院 ? 來源:網(wǎng)絡(luò)整理 ? 2018-02-01 03:33 ? 次閱讀

上一篇中介紹了UART的收發(fā)數(shù)據(jù)操作,那些操作都是基于外設(shè)庫的,而不是采用Harmony的動(dòng)態(tài)驅(qū)動(dòng),也沒有采用狀態(tài)機(jī)的機(jī)制。本篇就來介紹一下如何使用Harmony的動(dòng)態(tài)驅(qū)動(dòng)和狀態(tài)機(jī)來編寫程序。其實(shí)狀態(tài)機(jī)是挺簡單的,就是事先定義好可能發(fā)生的哪些狀態(tài),然后主循環(huán)里根據(jù)不同的狀態(tài)進(jìn)行不同的處理,這個(gè)在項(xiàng)目中也是比較常用的方法。

注意Dynamic的驅(qū)動(dòng)對象都需要有一個(gè)Open動(dòng)作來創(chuàng)建一個(gè)Handle,后續(xù)所有操作都是用Handle來代表這個(gè)驅(qū)動(dòng)對象。所有動(dòng)態(tài)驅(qū)動(dòng)的中斷都是采用注冊回調(diào)函數(shù)的方式來使用,無需到system_init中添加,也無需自己清除中斷標(biāo)識,驅(qū)動(dòng)已經(jīng)自己完成了。

另外要注意的一點(diǎn)是,串口接收一個(gè)字節(jié)后進(jìn)入了中斷,如果不使用Read接收一下,那么后續(xù)就再也無法進(jìn)入中斷,就會出現(xiàn)僅中斷一次的現(xiàn)象,因此,也不要在中斷中進(jìn)行耗時(shí)操作,避免沒有及時(shí)接收數(shù)據(jù),導(dǎo)致數(shù)據(jù)殘缺不全。

先在app.h文件中定義狀態(tài)機(jī)和UART要使用的相關(guān)變量結(jié)構(gòu)體,使用結(jié)構(gòu)體也是滿方便的。

1

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

2

編寫中斷回調(diào)函數(shù)內(nèi)容程序,收到一個(gè)數(shù)據(jù)后存儲到數(shù)據(jù)緩沖區(qū),并置位接收完成標(biāo)志位

3

發(fā)送數(shù)據(jù)的函數(shù),發(fā)送采用查詢方式

4

編寫Uart_Task()函數(shù),狀態(tài)里就在這里處理,初始化狀態(tài)時(shí)進(jìn)行初始化,然后進(jìn)入接收數(shù)據(jù)狀態(tài),接收到數(shù)據(jù)后回發(fā),并在OLED上顯示接收到的字節(jié)數(shù)。

5

在APP_Tasks()中循環(huán)調(diào)用Uart_Task(),以處理接收到的數(shù)據(jù)。

6

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

7

OLED顯示效果

092736phxohksn4x4kxd44

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    492

    瀏覽量

    27649
收藏 人收藏

    評論

    相關(guān)推薦

    為什么PIC32的Harmony編寫沒有交互的狀態(tài)機(jī)

    重新定義,但是基于和聲方法,這些狀態(tài)機(jī)也基于中斷在不同的文件中從一個(gè)狀態(tài)移動(dòng)到另一個(gè)狀態(tài)。這個(gè)應(yīng)用程序運(yùn)行良好,但我詢問您的意見,如果這種方法是正確的或可以改進(jìn)的,或者如果您有任何SU
    發(fā)表于 08-12 08:36

    什么是有限狀態(tài)機(jī)

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

    狀態(tài)機(jī)原理在控制程序設(shè)計(jì)中的應(yīng)用

    計(jì)算機(jī)控制系統(tǒng)的控制程序具有有限狀態(tài)自動(dòng)機(jī)的特征 可以用有限狀態(tài)機(jī)理論描述。利用狀態(tài)轉(zhuǎn)移圖和條件編碼可以更直觀和清晰地描述
    發(fā)表于 03-22 15:30 ?1次下載

    VFP9.0編寫程序

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

    狀態(tài)機(jī)VHDL程序

    狀態(tài)機(jī)VHDL程序,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 15:51 ?5次下載

    簡述使用QII狀態(tài)機(jī)向?qū)绾蝿?chuàng)建一個(gè)狀態(tài)機(jī)

    如何使用QII狀態(tài)機(jī)向?qū)?chuàng)建一個(gè)狀態(tài)機(jī)
    的頭像 發(fā)表于 06-20 00:11 ?4273次閱讀
    <b class='flag-5'>簡述</b>使用QII<b class='flag-5'>狀態(tài)機(jī)</b>向?qū)绾蝿?chuàng)建一個(gè)<b class='flag-5'>狀態(tài)機(jī)</b>

    FPGA之狀態(tài)機(jī)的功能簡述與學(xué)習(xí)建議

    狀態(tài)機(jī)狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號動(dòng)作,完成特定操作的控制中心。狀態(tài)機(jī)分為
    的頭像 發(fā)表于 10-09 07:07 ?3622次閱讀

    狀態(tài)機(jī)如何簡化PLC程序編寫

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

    FPGA:狀態(tài)機(jī)簡述

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

    基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹

    ? 一、介紹 EFSM(event finite state machine,事件驅(qū)動(dòng)型有限狀態(tài)機(jī)),是一個(gè)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī),主要應(yīng)用于嵌入式設(shè)備的軟件系統(tǒng)中。 EFSM的設(shè)計(jì)
    的頭像 發(fā)表于 11-16 15:29 ?2390次閱讀

    狀態(tài)模式(狀態(tài)機(jī))

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

    基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹

    EFSM(event finite state machine,事件驅(qū)動(dòng)型有限狀態(tài)機(jī)),是一個(gè)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī),主要應(yīng)用于嵌入式設(shè)備的軟件系統(tǒng)中。
    的頭像 發(fā)表于 02-11 10:17 ?1099次閱讀

    如何使用FSME定制狀態(tài)機(jī)

    定制狀態(tài)機(jī) 目前得到的狀態(tài)機(jī)已經(jīng)能夠響應(yīng)來自外部的各種事件,并適當(dāng)?shù)卣{(diào)整自己當(dāng)前所處的狀態(tài),也就是說已經(jīng)實(shí)現(xiàn)了狀態(tài)機(jī)引擎的功能,接下來要做的就是根據(jù)應(yīng)用的具體需求
    的頭像 發(fā)表于 09-13 16:57 ?1575次閱讀
    如何使用FSME<b class='flag-5'>來</b>定制<b class='flag-5'>狀態(tài)機(jī)</b>

    虛擬機(jī)linux怎么編寫程序

    在虛擬機(jī)Linux上編寫程序是一項(xiàng)非常常見且有用的任務(wù)。無論是開發(fā)一個(gè)簡單的腳本、一個(gè)Web應(yīng)用程序還是一個(gè)復(fù)雜的軟件項(xiàng)目,Linux提供了強(qiáng)大的工具和環(huán)境幫助你進(jìn)行編程。本文將詳細(xì)
    的頭像 發(fā)表于 11-17 10:08 ?1909次閱讀

    怎樣在codeblocks上編寫程序

    在CodeBlocks上編寫程序是一項(xiàng)相對簡單而又重要的任務(wù)。CodeBlocks是一個(gè)廣泛使用的集成開發(fā)環(huán)境(IDE),它能夠幫助程序編寫、編譯和運(yùn)行他們的代碼。在本篇文章中,我們將詳細(xì)介紹
    的頭像 發(fā)表于 11-26 09:26 ?1728次閱讀
    主站蜘蛛池模板: 国产精品9999久久久久仙踪林 | 天天射网站| 欧美不卡一区 | 国产一级簧片 | 天天干天天做天天射 | 亚洲免费在线看 | 亚洲人成网站在线观看妞妞网 | 精品乩伦视频 | 美女黄18以下禁止观看 | 亚洲一级视频在线观看 | 亚洲伊人久久大香线蕉啊 | 综合天天色 | 永久免费观看黄网站 | 啪啪黄色片 | 国内啪啪| 欧美日韩高清一本大道免费 | 亚洲大色 | 爱婷婷视频在线观看 | 色五五月 | 91精选视频在线观看 | 婷婷午夜 | 天天干夜夜操 | 天天干天天色综合 | 国产精品高清久久久久久久 | 在线免费观看视频黄 | 天天干天天干天天操 | www.天天干.com | 美女屁屁免费视频网站 | 亚州黄色网址 | 华人被黑人粗大猛然进 | 一级特级aaa毛片 | 天天干天天做天天操 | 久久国产精品无码网站 | 久久亚洲精品国产亚洲老地址 | 青青草99热久久 | 免费黄色在线视频 | 一区二区福利 | 色婷婷色 | 亚洲人xx视频 | 日本sese| 女人张开腿等男人桶免费视频 |