<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 1810|回復: 0
    打印 上一主題 下一主題

    【教程8】瘋殼·ARM功能手機-GPIO實驗教程

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2022-8-12 14:44:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: ARM , 功能手機 , GPIO , 實驗教程 , 寄存器
    ARM功能手機
    ——瘋殼·開發板系列
    GPIO實驗教程   




       
        圖1

        第一節LED硬件電路

            板子中有一個可控LED,接在DA14580的P24引腳,LED串聯1K的限流電阻,如下圖所示:

       
        圖2


        第二節 GPIO寄存器

        2.1 GPIO引腳介紹
            DA14580的I/O引腳功能可以通過軟件配置,分為4組,分別為Port0、Port1、Port2、Port3,其中Port2只在QFN40與QFN48封裝的芯片中,Port3只在QFN48封裝的芯片中。
        Port0有8個引腳,Port1有6個引腳(其中包括DEBUG引腳SW_CLK與SWDIO),Port2有10個引腳,Port3有8個引腳;
        每個引腳都可以選擇上拉或者下拉25KOhm的電阻;
        每個引腳上拉電壓在VBAT3V(降壓模式)與VBAT1V(升壓模式)兩者可選;
        4路模數轉換的引腳固定分配為Port0中的0:3引腳;
        當系統進入睡眠模式時,引腳保持最后的狀態。
        2.2寄存器介紹
        2.2.1 P0數據寄存器

       
        圖3
        15:8位:保留不使用;
        7:0位:寫該寄存器則設置P0輸出寄存器的值,讀該寄存器則返回P0口的值。
        2.2.2 P0設置數據寄存器

       
        圖4
        15:8位:保留不使用;
        7:0位:寫’1’到對應位則對應的引腳置’1’,寫’0’無效,讀該寄存器則返回0。
        2.2.3 P0復位數據寄存器

       
        圖5
        15:8位:保留不使用;
        7:0位:寫’1’到對應位則對應的引腳置’0’,寫’0’無效,讀該寄存器則返回0。
        2.2.4 P00模式寄存器


       
        圖6
        15:10位:保留不使用;
        9:8位:設置引腳的上拉、下拉電阻的模式,00為輸入,無電阻;01為輸入,上拉電阻;10為輸入,下拉電阻;11為輸出,無電阻;在ADC模式中該位的設置無效。
        7:5位:保留不使用;
        4:0位:設置引腳功能,0~25分別對應不同的功能,具體看上圖,注:當一個輸入功能設置為多個引腳時,引腳序號越低優先級越高,即優先選用序號低的引腳設置為該功能。P0的優先級比P1的高。
        2.2.5 P1~P3的寄存器配置
        參照P0寄存器的配置,需要注意的是P14與P15兩個引腳模式的默認值是1,即默認上拉電阻。
        注:P14與P15為SWD調試接口的時鐘與數據接口,在使用Jlink調試過程中不要使用這兩個引腳。
        2.3 寄存器配置講解
        #define P0_DATA_REG                (* ( volatile uint16*)0x50003000)
        #define P0_SET_DATA_REG            (* ( volatile uint16*)0x50003002)
        #define P0_RESET_DATA_REG          (* ( volatile uint16*)0x50003004)
        #define P00_MODE_REG              (* ( volatile uint16*)0x50003006)
        #define P01_MODE_REG              (* ( volatile uint16*)0x50003008)
        #define P02_MODE_REG              (* ( volatile uint16*)0x5000300A)
        #define P03_MODE_REG              (* ( volatile uint16*)0x5000300C)
        #define P04_MODE_REG              (* ( volatile uint16*)0x5000300E)
        #define P05_MODE_REG              (* ( volatile uint16*)0x50003010)
        #define P06_MODE_REG              (* ( volatile uint16*)0x50003012)
        #define P07_MODE_REG              (* ( volatile uint16*)0x50003014)
        如果對P0整體操作,可以使用P0_DATA_REG寄存器,若使P0[7:0] = 0xaa,因為以上宏定義是定義的地址,則寄存器操作為P0_DATA_REG=0xaa;
        如果要讀取P0的狀態值,則通過讀取P0_DATA_REG寄存器,P0_STATUS = P0_DATA_REG,若要讀取某一位的狀態值,則通過與操作之后返回邏輯值即可。
        作為輸出時P0_DATA_REG適合對整體P0口操作,而對于某一位進行操作則需要經過一些邏輯操作保持其它位的值不變,不是很方便。而P0_SET_DATA_REG和P0_RESET_DATA_REG這兩個寄存器對位操作就十分方便。對某一位置’0’或置’1’只需對應位賦1,其它位賦0即可,因為該寄存器忽視寫0操作。若使P00 = 1,P01 = 0則P0_SET_DATA_REG =0x01;  P0_RESET _DATA_REG=0x02;
        P0[x]_MODE_REG是P0口某一位的操作模式的設置寄存器,例如配置P00為輸入口,不上拉電阻,P01為I2C_SDA,P02為輸出口,則
        P00_ MODE _DATA_REG=0x00;
        P01_ MODE _DATA_REG=0x0a;
        P02_ MODE _DATA_REG=0x30;



        第三節 GPIO實驗

        實驗需要使用的模塊有:手機開發板底板,Jlink調試工具,杜邦線、3.7V鋰電池或Mocro USB線。
        使用JLINK通過杜邦線連接手機藍牙位于手機主控底板,連接方式如下:
        (1)JLINK一端只需要使用杜邦線連接JLINK的SWC、SWD、GND三個引腳,如下圖所示:

       
        圖7
        (2)手機藍牙一端需要使用杜邦線連接上方右側的J3三個引腳,與JLINK的連接引腳一一對應,分別為SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下圖所示:

       
        圖8
        將JLINK插上電腦的USB接口,連接好之后給手機主控底板供電,詳細的介紹可以參考《如何上電》教程,路徑為:..\WT_Mobile\0.從這里開始\0.開機測試。
        打開GPIO實驗的Keil工程blinky.uvproj,位于目錄:
        ...\WT_Mobile\1.初級教程\DA14580\1.GPIO實驗\projects\target_apps\peripheral_examples\blinky\Keil_5。

       
        圖9
        打開工程文件之后,編譯,點擊DEBUG,然后點擊全速運行,則可以看到開發板正面的藍色LED燈開始閃爍,如下圖所示:



       
        圖10



        文件下載請點擊: GPIO實驗教程.pdf (710.42 KB)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷