原创 03操縱GPIO-手把手帶你玩ARM MBED

2019-8-12 17:03 1668 9 4 分类: MCU/ 嵌入式 文集: MBED研究
在"02第一個程序 LED閃爍" 中我們很快速的由MBED範例建立了LED閃爍。可是操縱的怎麼是LED1? GPIO哪裡去了?
當你選用其中一片開發板時, 像是TT_M4G9,開發板廠商已經把引腳名稱建立好了,像是本文最後的定義。
這些宣告的PinName 你只能將程式包導出(Export),才能看到完整的程序。"mbed-os\targets\TARGET_TT\TARGET_TT_M4G9"
使用前你必須先建立類
DigitalOut led1(LED1);
之後你就可以使用自建的 led1類來操縱。
https://os.mbed.com/docs/mbed-os/v5.13/apis/digitalout.html
操縱時你可以用 led1.write(0), 連接到GND。或是led1=0。
=================================================================
typedef enum {
    // TMPM4G9 Pin Names
    PA0 = 0  << 3, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
    PB0 = 1  << 3, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
    PC0 = 2  << 3, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
    PD0 = 3  << 3, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
    PE0 = 4  << 3, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
    PF0 = 5  << 3, PF1, PF2, PF3, PF4, PF5, PF6, PF7,
    PG0 = 6  << 3, PG1, PG2, PG3, PG4, PG5, PG6, PG7,
    PH0 = 7  << 3, PH1, PH2, PH3, PH4, PH5, PH6, PH7,
    PJ0 = 8  << 3, PJ1, PJ2, PJ3, PJ4, PJ5, PJ6, PJ7,
    PK0 = 9  << 3, PK1, PK2, PK3, PK4, PK5, PK6, PK7,
    PL0 = 10 << 3, PL1, PL2, PL3, PL4, PL5, PL6, PL7,
    PM0 = 11  << 3, PM1, PM2, PM3, PM4, PM5, PM6, PM7,
    PN0 = 12  << 3, PN1, PN2, PN3, PN4, PN5, PN6, PN7,
    PP0 = 13  << 3, PP1, PP2, PP3, PP4, PP5, PP6, PP7,
    PR0 = 14  << 3, PR1, PR2, PR3, PR4, PR5, PR6, PR7,
    PT0 = 15  << 3, PT1, PT2, PT3, PT4, PT5,
    PU0 = 16  << 3, PU1, PU2, PU3, PU4, PU5, PU6, PU7,
    PV0 = 17  << 3, PV1, PV2, PV3, PV4, PV5, PV6, PV7,
    PW0 = 18  << 3, PW1, PW2, PW3, PW4, PW5, PW6, PW7,
    PY0 = 19  << 3, PY1, PY2, PY3, PY4,

    // Other mbed Pin Names
    LED0 = PE4,
    LED1 = PE5,
    LED2 = PE6,
    LED3 = PE7,

    // External data bus Pin Names
    D0 = PJ0,
    D1 = PJ1,
    D2 = PF4,
    D3 = PB2,
    D4 = PF5,
    D5 = PB4,
    D6 = PC2,
    D7 = PF6,
    D8 = PA4,
    D9 = PC4,
    D10 = PA6,
    D11 = PA3,
    D12 = PA2,
    D13 = PA1,
    D14 = PG2,
    D15 = PG3,

    // Analogue out pins
    A0 = PN0,
    A1 = PN1,
    A2 = PN2,
    A3 = PN3,
    A4 = PN4,
    A5 = PN5,

    // USB2_UART
    USBTX = PU0,
    USBRX = PU1,
    MBEDIF_TXD = USBTX,
    MBEDIF_RXD = USBRX,

    MBED_CONF_APP_UART0_TX = PE3,
    MBED_CONF_APP_UART0_RX = PE2,

    // Switches
    SW1 = (int)0xFFFFFFFF,        //Reset Button
    SW2 = PL4,       //Push button S2
    SW3 = PM0,       //DIP switch J7_1
    SW4 = PM1,       //DIP switch J7_2
    USER_BUTTON = PL4,

    // I2C pins
    SDA = PG2,
    SCL = PG3,
    I2C_SDA = SDA,
    I2C_SCL = SCL,

    // SPI pins
    SPI_MOSI = D11,
    SPI_MISO = D12,
    SPI_SCK  = D13,
    SPI_CS   = D10,


    // Not connected
    NC = (int)0xFFFFFFFF,
} PinName;

作者: jessekuotw, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3888969.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

curton 2019-8-19 20:28

学习了

qkb_75_378033034 2019-8-13 11:10

楼主是 弯弯? 怎么用 程序,而不用 程式呢?   如果是纯种大陆人就简体字吧,你自己不也方便么?

curton 2019-8-13 09:02

为什么不采用C语言?
相关推荐阅读
jessekuotw 2019-08-30 15:45
06導出的檔案放回網上的環境-手把手帶你玩ARM MBED
相信很多人Export MBED的檔案後就再以放不回去了. 因為種種原因, 導致了這個問題. 這裡就教你如何放回ZIP檔案.1.首先你必須解開ZIP檔案, 重新壓縮成不包含資料夾的ZIP2.請先imp...
jessekuotw 2019-08-22 10:21
05為何要用類-手把手帶你玩ARM MBED
在MBED 裡面主要使用了C++, 類的操作. 長時間在使用MCU的人,大多覺得類不是那麼的好用。那為何要用Class呢?除了像RTOS, 與USB, TCP/IP 的功能外, 確實很少用Class。...
jessekuotw 2019-08-15 16:34
04導出程序-手把手帶你玩ARM MBED
在上一篇中,我們看到了導出後Thundersoft 如何定義腳位,這裡要強調導出的重要性。在MBED的線上編輯器,你是不能變更腳位配置的,例如TT_M3HQ, TT_M4G9 的J11。出廠時J11將...
jessekuotw 2019-08-12 15:56
02第一個程序LED閃爍-手把手帶你玩ARM MBED
首先我們來做一個"LED1"閃爍的程序。找到這個網址:https://os.mbed.com/docs/mbed-os/v5.13/quick-start/online-with-the-online...
jessekuotw 2019-08-07 15:53
01事前準備-手把手帶你玩ARM MBED
要玩轉ARM MBED,首先你必須要夠ˋ買一片MBED官網條列的開發板。你可以在這個網址https://os.mbed.com/platforms/看到所有的開發板。ARM MBED 提供你免費的線上...
EE直播间
更多
我要评论
3
9
关闭 站长推荐上一条 /3 下一条