<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                * 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz?p=9) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> 接著上節課的內容,切換到ioConfig工程,如圖所示。 ![](https://img.kancloud.cn/d7/7a/d77a0e56c7734f0851e2210aff05ed5e_650x402.png =400x) <br/> ## **GPIO輸入輸出通用配置API** &emsp;&emsp;本小節實驗將要實現的效果和上節課的是一樣的,即通過按鍵控制LED翻轉。不同的是,本節課使用了GPIO輸入輸出通用配置API CC2530\_IOCTL,開發者不再需要自己查找和配置GPIO的相關寄存器了。 ### 打開頭文件cc2530\_ioctl.h,找到CC2530_IOCTL定義,代碼如下: ``` //2. 51單片機入門/4. 串口通信實驗/Workspace/code/common/cc2530_ioctl.h /** * @brief 配置GPIO模式 * * @param port - CC2530引腳port號 * @param pin - CC2530引腳pin號 * @param mode - 該GPIO的模式 * * @warning P1_0和P1_1不能配置為輸入模式 */ #define CC2530_IOCTL(port, pin, mode) do { if (port > 2 || pin > 7) break; if (mode == CC2530_OUTPUT) CC2530_IO_OUTPUT(port, pin); else CC2530_IO_INPUT(port, pin, mode); } while(0) ``` ### 其中的mode參數可以傳入下列參數,表示不同的模式: ### ``` //2. 51單片機入門/4. 串口通信實驗/Workspace/code/common/cc2530_ioctl.h /** @brief CC2530 GPIO mode. */ #define CC2530_OUTPUT 0 //輸出模式 #define CC2530_INPUT_PULLUP 1 //上拉輸入模式 #define CC2530_INPUT_PULLDOWN 2 //下拉輸入模式 #define CC2530_INPUT_TRISTATE 3 //3態模式 ``` ### 如果需要把CC2530的P0\_4引腳配置為輸出信號模式,只需按如下方式調用: ``` CC2530\_IOCTL(0, 4, CC2530\_OUTPUT); ``` 可見,在使用CC2530\_IOCTL后,GPIO口的配置變得非常簡單,不再需要另外查找配置P0\_4的相關寄存器了! <br/> ## **使用CC2530\_IOCTL** 使用CC2530\_IOCTL前,需要分別定義LED和按鍵與CC2530引腳的連接。在頭文件cc2530\_ioctl.h中,可以找到LED和按鍵與CC2530的引腳連接定義,代碼如下: ### ``` //2. 51單片機入門/4. 串口通信實驗/Workspace/code/common/cc2530_ioctl.h // LED與GPIO的連接定義 #define LED_PORT 0 //Led port. #define LED_PIN 4 //Led pin. #define LED P0_4 //Led GPIO. // Button與GPIO的連接定義 #define BUTTON_PORT 0 //Button port. #define BUTTON_PIN 1 //Button pin. #define BUTTON P0_1 //Button GPIO. ``` 以上代碼定義了LED與CC2530的P0\_4引腳連接、按鍵與CC2530的P0\_1引腳連接。 ### 這樣做的優點在于,如果硬件電路發生改變,例如LED接的不是P0\_4、按鍵接的不是P0\_1,那么開發者只需要在這里修改配置,而不需要修改代碼。 <br/> 以下兩個初始化函數的效果分別與前面章節的LED和按鍵初始化函數的效果是相同的。 ### ``` //2. 51單片機入門/2. GPIO實驗/Workspace/code/ioConfig/ioConfig.c /* * 初始化LED */ static void initLed() { CC2530_IOCTL(LED_PORT,//LED的port LED_PIN,//LED的pin CC2530_OUTPUT);//配置為輸出 LED = LED_OFF; } /* * 初始化按鍵 */ static void initButton() { CC2530_IOCTL(BUTTON_PORT,//按鍵的port BUTTON_PIN,//按鍵的pin CC2530_INPUT_PULLUP);//配置為上拉輸入 } ``` <br/> ## **仿真調試** 1. 把開發板通過仿真器連接到電腦上。 2. 按一下仿真器的復位按鍵,如圖所示。 ![](https://img.kancloud.cn/a6/65/a66518b91448e99ee3e1594218f21591_1710x612.png =200x) ### 3. 打開本實驗代碼,打開調試模式,編譯鏈接通過后,點擊“下載仿真”按鈕全速運行程序,每當有按鍵按下時Terminal I/O中就會輸出相應的信息,如圖所示。 ![](https://img.kancloud.cn/03/38/03381fce1d48e5c5c0057963f798d1a4_830x274.png =600x) <br/> <br/> ## **商務合作** 如有以下需求,可掃碼添加管理員好友,注明“**商務合作**” * 項目定制開發,技術范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等; * 入駐平臺,成為講師; * 接項目賺外快; * 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/) ![](https://img.kancloud.cn/ca/73/ca739f92cab220a3059378642e3bd502_430x430.png =200x) * 非合作**勿擾**,此處**非**技術支持
                  <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>

                              哎呀哎呀视频在线观看