<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * 導師**視頻**講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz/) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> ## **本章學習目標** * 移植M25PE80驅動程序到協議棧中 * 掌握使用M25PE80驅動程序 # ## **驅動程序準備** 我們在協議棧的HAL(硬件適配層)中建立一個目錄HW\_XNV用來保存外部FLASH的驅動程序: ![](https://img.kancloud.cn/fd/e4/fde40844902acc50aca7f280fe1eff12_436x246.png =300x) ### 目錄HW\_XNV下: ![](https://img.kancloud.cn/bc/26/bc265d05a5e5b6dbce69f93d6342aae2_406x88.png =300x) ### 驅動程序是來自基礎篇的內容: ![](https://img.kancloud.cn/1b/02/1b02cb6e89d7e48f3436a31e6d5ff461_182x176.png =150x) ![](https://img.kancloud.cn/b1/81/b18155d7979758da26806caa5d75676b_174x180.png =135x) ### 其中hal\_flash\_spi.h/c是用來適配SPI總線的,因為我們的外部FLASH采用的是型號為M25PE80這款芯片,驅動總線是SPI;而SPI的驅動程序和屏幕使用的程序是一樣的!hal\_m25pexx.h/c是外部FLASH的驅動程序。 # ## **驅動程序移植** 在工程中創建相應的工程組,并把驅動程序添加進來: ![](https://img.kancloud.cn/de/77/de775378c591cc63c14741aa5f309345_422x538.png =300x) ### 在工程設置中將程序目錄添加進去: ![](https://img.kancloud.cn/df/1a/df1a76ae91ba78d68f7d29b438d3184b_672x428.png =600x) ### 添加的內容: ``` $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_XNV\HAL_FLASH_SPI $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_XNV\HAL_M25PExx ``` ### 初始化外部FLASH,在文件hal\_drivers.c中: ![](https://img.kancloud.cn/fa/29/fa29681a71094865c3e37d3a8000cc9e_362x326.png =300x) ### 初始化(記得包含hal\_m25pexx.h頭文件): ![](https://img.kancloud.cn/a8/7e/a87eb545df6cc2f50944c1034cb50e6e_598x890.png =400x) # ## **驅動程序應用** 在應用程序zcl\_samplesw.c中,我們設置一個周期性的事件,這個事件會對外部FLASH進行讀寫操作,應用層事件處理函數zclSampleSw\_event\_loop中,我們添加一段代碼: ![](https://img.kancloud.cn/40/9b/409b2d291165a35d39c2a329eefedbda_830x678.png =600x) ### 事件處理函數做了3件事情,首先是把一個變量的值寫入到外部FLASH地址為1234位置;然后又從該地址把數據讀取到另一個變量中;最后把寫入的數值和讀取到的數值在顯示屏上顯示出來! # ## **仿真調試** 編譯工程后,把程序燒錄到開發板中,可以看到顯示屏顯示讀寫外部FLASH的數值,寫入和讀取到的數值是一樣的,說明外部FLASH正常工作,且驅動程序沒有問題。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看