B L 425 Gömülü Sistemler LAB – 2: STM32F429IDISCO LED ve Buton Uygulama 1. 2. 3. 4. 5. µVision programını çalıştırınız. Kartınızı USB portuna takınız. Yeni proje oluşturunuz. Projenizin ismi bil425_lab2 olabilir. Project penceresindeki Source Group 1 klasörü üzerine tıklayarak ismini User olarak değiştiriniz. User klasörüne sağ tuş ile tıklayınız ve açılan menüde “Add New Item to Group User” seçeneğini seçiniz. 6. Açılan diyalog kutusunda Header file seçiniz. Name kısmına main.h yazınız ve OK butonuna basınız. 7. Açılan dosyaya EK-1’de verilen kodu yazınız. 8. User klasörüne sağ tuş ile tıklayınız ve açılan menüde “Add New Item to Group User” seçeneğini seçiniz. 9. Açılan diyalog kutusunda C File seçiniz. Name kısmına main.c yazınız ve OK butonuna basınız. 10. Açılan dosyaya EK-2’de verilen kodu yazınız. 11. Projenizi Build ediniz. 12. Projenizi karta yükleyiniz (LOAD). 13. Debug butonuna basarak DEBUG görünümüne geçiniz. 14. Run butonuna basarak projenizi kart üzerinde çalıştırınız. 15. Kart üzerindeki Mavi Butona basarak LED’i izleyiniz. Tasarım: Butona kaç kez basıldığını göz önüne alarak, çift sayılarda YEŞİL LED ve tek sayılarda KIRMIZI LED ışık verecek şekilde projenizi yeniden düzenleyiniz. EK-1 EK-2 #ifndef __MAIN_H #define __MAIN_H #include "main.h" int main(void) { //include bolumu #include "stm32f4xx.h" #include "stm32f4xx_rcc.h" #include "stm32f4xx_gpio.h" //define bolumu #define LED GPIO_Pin_13 #define BUTTON GPIO_Pin_0 //Prototip bolumu void initBoard(void); void initLED(void); void initButton(void); void loop(void); void Delay(uint32_t); #endif initBoard(); while(1) loop(); } //----------------------------------------------void initBoard(void) { initLED(); initButton(); } //----------------------------------------------void initLED(void) { //PG13 pinine bagli LED kullaniliyor GPIO_InitTypeDef gpio; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE); gpio.GPIO_Pin = LED; gpio.GPIO_Mode = GPIO_Mode_OUT; gpio.GPIO_Speed = GPIO_Speed_50MHz; gpio.GPIO_OType = GPIO_OType_PP; GPIO_Init(GPIOG, &gpio); } //----------------------------------------------void initButton(void) { // buton PA0 pinine bagli GPIO_InitTypeDef gpio; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); gpio.GPIO_Pin = BUTTON; gpio.GPIO_Mode = GPIO_Mode_IN; gpio.GPIO_Speed = GPIO_Speed_50MHz; gpio.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Init(GPIOA, &gpio); } //------------------------------------------------void loop(void) { if(GPIO_ReadInputDataBit(GPIOA, BUTTON)) { GPIO_SetBits(GPIOG, LED); Delay(1000); } else GPIO_ResetBits(GPIOG, LED); } //------------------------------------------------void Delay(uint32_t ms) { ms *= 33600; //ms cevrimi while(ms--) { __NOP(); } }
© Copyright 2024 Paperzz