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。
本單元將說明利用東芝所提供的範例程式,搭配 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
評論