【TOSHIBA Lens Control 專欄介紹】M343 開發板之玩轉 GPIO

1. 簡介
   本單元將說明利用東芝所提供的範例程式,搭配 IAR 的 IDE 開發工具,快速的建立專案所需的 GPIO 應用。
   初次使用開發板且為了容易上手了解 GPIO 的運作,這邊將會以 LED 的明暗控制做示範,   測試程式是否可正常運行與了解初步的設定方法。
  
   所需工具:
    IAR Embedded Workbench for Arm version 8.50.5
    M343 開發板
    USB2.0 A公-B公連接線

2. 開發板線路圖與 Jump 設定:
    ★ 
本單元測試八顆LED ,pin 之定義:
         

   
 ★ 線路圖:
         
    

    ★  開發板 LED & SW button 說明:
         
    
    
3. 實作過程
   3.1 啟動 IAR Embedded Workbench for Arm version 8.50.5。

   3.2 開啟 GPIO_LED.eww 專案,資料夾路徑為 Project >> Examples >> GPIO >> GPIO_LED。
   3.3 進入主程式 main.c 可以看到範例程式依序輪流點亮 LED。        
int main(void)
{
LEDInit();
while (1) {
demo_io();
}
}

void demo_io(void)
{
uint32_t i;
uint8_t j;
uint8_t data;

for (j = 0U; j < 8U; ++j) {
data = LedData[j];
LedOn(data);
for (i = 0U; i < DELAY; ++i) {
/* Do nothing */
}
}
}
   3.4 接下來做一下小修改,改成按下 button 讓 LED 亮起,放開 button 則 LED 熄滅。為了達到這目的,我們要先對 button 的 GPIO 做輸入的設定。
void Button_Configuration(void)

{
GPIO_SetInput(GPIO_PB, (GPIO_BIT_2 | GPIO_BIT_3 | GPIO_BIT_4 | GPIO_BIT_5 | GPIO_BIT_6 | GPIO_BIT_7));
GPIO_SetInput(GPIO_PC, (GPIO_BIT_5 | GPIO_BIT_7));
}

3.5 進入主程式 main.c ,增加 button 偵測功能,每一個 button 對應的 LED 燈號如下表:。 
            
     
      舉例: 按下 SW3,LED4 亮起,放開 SW3 則 LED4 熄滅。

int main(void)
{
LEDInit();
Button_Configuration();
while (1) {
demo_LED_by_SW();
}
}

void demo_LED_by_SW(void)
{
if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_2) == 0U){ //SW3
LedOn(LED4);
}else{
LedOff(LED4);
}

if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_6) == 0U){ //SW7
LedOn(LED5);
}else{
LedOff(LED5);
}

if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_3) == 0U){ //SW4
LedOn(LED6);
}else{
LedOff(LED6);
}

if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_7) == 0U){ //SW8
LedOn(LED7);
}else{
LedOff(LED7);
}

if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_4) == 0U){ //SW5
LedOn(LED8);
}else{
LedOff(LED8);
}

if(GPIO_ReadDataBit(GPIO_PC, GPIO_BIT_7) == 0U){ //SW9
LedOn(LED9);
}else{
LedOff(LED9);
}

if(GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_5) == 0U){ //SW6
LedOn(LED10);
}else{
LedOff(LED10);
}

if(GPIO_ReadDataBit(GPIO_PC, GPIO_BIT_5) == 0U){ //SW2
LedOn(LED12);
}else{
LedOff(LED12);
}

}
   3.6 然後在工具列選擇 Project >> Rebuild A11 來編譯此專案。
   3.7 透過 USB2.0 A公-B公連接線提供開發板USB電源。
   3.8 在工具列選擇點選 Project >> Download and Debug 
   3.9 此時,程式會停在 main( ),請點選 Debug >> Go 開始程式執行,這時候分別按壓開發板上的 SW3 ~ SW9, 可以看到 LED 會依照規劃的做閃爍行為。
         


參考資料
        [1] M3343 User Manual_en.pdf
        [2] TX03 Peripheral Driver User Guide_EN.pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論