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

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

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

機(jī)智云Gokit3.X源代碼分析之一

9GxC_IoTMaker ? 來源:未知 ? 作者:李倩 ? 2018-07-13 14:47 ? 次閱讀

從收到機(jī)智云的第一批試用板子到現(xiàn)在也挺久了,一直沒時(shí)間和大家分享,今天抽空寫下我的感受,機(jī)智云Gokit3.X是2016年6月25日發(fā)布的新產(chǎn)品,模型與Gokit2基本相同,采用底板+功能板+模組的方式,保留Arduino接口,可擴(kuò)展性不錯(cuò),具備以下功能:

獨(dú)創(chuàng)的雙排模組接口,兼容MCU和SoC兩種連接方式。

1路USB轉(zhuǎn)TTL調(diào)試串口。可用于SoC方式開發(fā)的日志輸出。

兼容Arduino接口。

GoKit經(jīng)典傳感器組合,溫濕度、紅外感應(yīng)、雙向電機(jī)、RGB燈。

3個(gè)key。

增加2路MIC,1路Speaker。

豐富的擴(kuò)展接口,如OLED等。

有3種配置:

GoKit3(V) - 語音模組版 (GoKit3功能板+底板+宇音天下模組)

GoKit3(S) - SoC版(樂鑫模組(GoKit3轉(zhuǎn)接板)+底板+GoKit3功能板)

GoKit3(H) - 高性能模組版

我拿到的是帶宇音天下模組Lark7618的語音識(shí)別版本,機(jī)智云還送了ESP8266的模塊,贊一個(gè)!試用了下效果還不錯(cuò),一些基本的開源項(xiàng)目論壇已經(jīng)很多了,我就不多說了,我著重分享下STM32端整個(gè)程序的流程,機(jī)智云傳輸這么穩(wěn)定得益于它整個(gè)框架的完整性,包括協(xié)議的制定以及解碼部分的機(jī)制,是一個(gè)比較好的框架,下面重點(diǎn)分析:

首先我們來看主函數(shù),開始先將系統(tǒng)初始化,主要包括Flash接口和時(shí)鐘的配置,這里初始化為72MHz,之后是用戶數(shù)據(jù)部分初始化

主要包括系統(tǒng)延時(shí)、串口、RGB燈、LED燈、電機(jī)、溫濕度、紅外對(duì)管等的初始化,之后開啟看門狗,復(fù)位時(shí)間2s,然后就是按鍵的配置了,按鍵部分程序也不錯(cuò),值得我們借鑒,我們找到按鍵定義的地方,

然后追蹤定義,我們go to definition,查看singleKey數(shù)組的定義結(jié)構(gòu)體,定義如下

主要有按鍵Num,GPIO端口,以及長(zhǎng)按短按的回調(diào)函數(shù)。之后看到將數(shù)組地址與按鍵數(shù)值組合成keysTypedef_t這樣一個(gè)結(jié)構(gòu)體,方便調(diào)用結(jié)構(gòu)體各個(gè)參數(shù),明白了按鍵的定義,我們接著看按鍵的初始化

將每個(gè)按鍵的物理GPIO以及長(zhǎng)短按回調(diào)函數(shù)都賦值到相應(yīng)數(shù)組,這里一共初始化了2個(gè)按鍵,之后將數(shù)組地址傳到keys這個(gè)結(jié)構(gòu)體變量,初始化之后就可以通過keys來調(diào)用按鍵的所有功能了。按鍵的具體控制原理后面會(huì)將。接下來是機(jī)智云協(xié)議的初始化,之后打印一串初始化成功的數(shù)據(jù)。

那么gizwitsInit();初始化了什么東西呢,我們進(jìn)去看看

這里就是初始化定時(shí)器和串口了,定時(shí)器初始化了定時(shí)器3,時(shí)鐘9分頻,自動(dòng)重裝載值7199,算下來1ms中斷一次,我們追蹤到定時(shí)器中斷

看到這個(gè)定時(shí)器的作用是提供一個(gè)時(shí)基, gizwitsProtocol.timerMsCount每秒加1。然后串口這里初始化了串口2,主要用來通訊,之后就是串口環(huán)形buff的一些初始化,下節(jié)介紹。

之后就進(jìn)入主循環(huán)了,喂狗,用戶數(shù)據(jù)的處理以及整個(gè)協(xié)議的運(yùn)轉(zhuǎn)一直循環(huán)。

這個(gè)圖是用Xmind做的,詳細(xì)分析了整個(gè)程序的框架,當(dāng)然,精髓不在這里,關(guān)于按鍵和串口環(huán)形buffer的數(shù)據(jù)處理方式,我們下節(jié)再探討。

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

    關(guān)注

    38

    文章

    1696

    瀏覽量

    112253
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2942

    瀏覽量

    66447
  • Gokit
    +關(guān)注

    關(guān)注

    2

    文章

    12

    瀏覽量

    12472

原文標(biāo)題:Gokit3.0 STM32源代碼分析之一

文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GC211+Gokit3接入機(jī)智實(shí)現(xiàn)4G開發(fā)調(diào)試的過程

    本文以圖文方式講解GC211+Gokit3,接入機(jī)智,實(shí)現(xiàn)4G開發(fā)調(diào)試的過程。
    的頭像 發(fā)表于 06-16 10:35 ?3688次閱讀

    機(jī)智GoKit開發(fā)套件固件

    機(jī)智GoKit開發(fā)套件固件主要包含以下兩個(gè):GAgent_MX3162_B4R012S0.binGoKit_00000001_2014-10-31_v1.bin
    發(fā)表于 04-23 18:22

    GoKit試用體驗(yàn)】+機(jī)智GoKit開發(fā)套件學(xué)習(xí)分享1之開箱圖

    本帖最后由 孤雨冰狐 于 2015-6-9 10:34 編輯 機(jī)智GoKit開發(fā)套件學(xué)習(xí)分享1之開箱圖今天我申請(qǐng)的機(jī)智
    發(fā)表于 06-08 17:13

    GoKit試用體驗(yàn)】GoKit體驗(yàn)之旅

    :使用微信控制GoKit第五步:開始智能硬件開發(fā)如圖 圖1 手機(jī)體驗(yàn)微信寵物屋圖2 機(jī)智個(gè)人項(xiàng)目 圖3 機(jī)智
    發(fā)表于 07-05 22:21

    【試用活動(dòng)】Gokit 2.X、Gokit 3.X 免費(fèi)申請(qǐng)?jiān)囉?/a>

    效。2.試用報(bào)告形式:標(biāo)題格式如:【GoKit 型號(hào)】+自擬標(biāo)題; Gokit 2.x;Gokit 3V;
    發(fā)表于 07-29 12:49

    【試用活動(dòng)】Gokit 2.X、Gokit 3.X 免費(fèi)申請(qǐng)?jiān)囉?/a>

    專業(yè)越有機(jī)會(huì)最終獲得Gokit。選做任務(wù):1.申請(qǐng)人邀請(qǐng)名好友參與機(jī)智申請(qǐng)活動(dòng),并附上該名好友的ID2.被邀請(qǐng)人跟帖申請(qǐng)時(shí)注明邀請(qǐng)方的ID 以及邀請(qǐng)
    發(fā)表于 08-02 14:24

    Gokit 3試用體驗(yàn)】(8)微信控制Gokit體驗(yàn)之機(jī)智寵物屋

    的情況下,順利實(shí)現(xiàn)了控制?! ≈悄軐櫸镂菘刂贫S碼只有出廠廠家才有,因?yàn)槲覀儧]有product_key,除非自己寫個(gè)類似的微信控制軟件。  以下解釋來自機(jī)智官網(wǎng)社區(qū)貼如何連接微信和機(jī)智
    發(fā)表于 10-02 12:19

    機(jī)智網(wǎng)紅手把手教你使用代碼自動(dòng)生成神器

    ` 本帖最后由 機(jī)智小編 于 2016-10-26 10:24 編輯 機(jī)智網(wǎng)紅手把手教你物聯(lián)網(wǎng)開發(fā)對(duì)代碼自動(dòng)生成神器
    發(fā)表于 10-19 16:01

    如何使用機(jī)智開發(fā)款智能硬件產(chǎn)品

    應(yīng)用,圖形化編程!STM32L432 Nucleo-32案例-3分鐘打造手機(jī)APP遠(yuǎn)程空氣質(zhì)量監(jiān)測(cè)應(yīng)用機(jī)智4.0自動(dòng)協(xié)議代碼、MCU工程生成工具體驗(yàn)李~的筆記
    發(fā)表于 12-26 15:56

    機(jī)智在Amazon Alexa平臺(tái)發(fā)布Smarthome和Custom Skill,實(shí)現(xiàn)亞馬遜Echo直接控制Gokit

    )是個(gè)由自服務(wù)API、工具、文件和實(shí)例代碼的集合,可輕松構(gòu)建你自定義的Alexa skills,然后發(fā)布。機(jī)智開源套件 Gokit
    發(fā)表于 03-31 11:54

    機(jī)友分享 | 基于Gokit+機(jī)智的低成本MCU紅外遙控器

    Gokit,通過機(jī)智的物聯(lián)網(wǎng)平臺(tái),能夠滿足我的需求,那么怎么來做呢?根據(jù)經(jīng)驗(yàn)所得,需要對(duì)這個(gè)工作拆分為幾部分:機(jī)智平臺(tái)數(shù)據(jù)點(diǎn)定義(啥是
    發(fā)表于 07-07 12:19

    4G模組接入機(jī)智gokit3開發(fā)板

    準(zhǔn)備內(nèi)容:1.機(jī)智Gokit3開發(fā)板塊(MCU模式),機(jī)智開發(fā)者工具,購買地址:[http
    發(fā)表于 10-31 19:55

    基于gokit3微信寵物屋與機(jī)智的物聯(lián)網(wǎng)智能家居

    教程,下載機(jī)智 GoKit_MCU_STM32_V03010101測(cè)試固件及開發(fā)資源,在教程附件可以獲取。2.將STM32F103C8x.ioc復(fù)制到我們?cè)贫酥跋螺d好的自動(dòng)生成
    發(fā)表于 04-07 17:53

    通過機(jī)智GoKit3開發(fā)套件實(shí)現(xiàn)手機(jī)APP的遠(yuǎn)程控制

    GoKit3(S)是機(jī)智(GizWits)推出的物聯(lián)網(wǎng)智能硬件開發(fā)套件之一,目的是幫助傳統(tǒng)硬件快速接入互聯(lián)網(wǎng)。
    的頭像 發(fā)表于 06-05 06:07 ?2981次閱讀

    機(jī)智Gokit3測(cè)評(píng)】Gokit3硬件電路學(xué)習(xí)

    GoKit3的硬件電路原理學(xué)習(xí)之旅吧。GoKit3是什么?GoKit3機(jī)智(GizWits)推出的物聯(lián)網(wǎng)智能硬件開發(fā)套件
    的頭像 發(fā)表于 08-26 11:14 ?742次閱讀
    【<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>Gokit3</b>測(cè)評(píng)】<b class='flag-5'>Gokit3</b>硬件電路學(xué)習(xí)