Ana Sayfa STM32F4 Discovery STM32F4 Discovery Buton Uygulaması

STM32F4 Discovery Buton Uygulaması

5 min read
0
0
5,186

Merhaba,

Arkadaşlar bu yazımızda kartımızın üstünde bulunan user butonunun kullanımıyla ilgili bir uygulama gerçekleştireceğiz.Malumunuz kartımızın üzerinde bir user butonu bulunmakta ve bu buton A0 pini ile bağlantılı durumdadır.Uygulamamızda user butonuna basılmasıyla birlikte kartımızın üzerinde bulunan ledlerin yanması,butondan elimizi çektiğimizde ledlerin sönmesi işlemi gerçekleştirilecektir.

Ledlerimiz için yaptığımız konfigürasyon ayarları aşağıda gösterilmektedir.

[php]

//GPIOD

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

//Yapıyı başlatıyoruz

GPIO_InitTypeDef GPIO_InitDef;

//12,13,14,15 nolu pinler ayarlanıyor.

GPIO_InitDef.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15;

//Çıkış olarak ayarlanıyor..

GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;

//Çıkış tipi push-pull olarak ayarlanıyor.

GPIO_InitDef.GPIO_OType = GPIO_OType_PP;

GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;

//50MHz pin hızı

GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;

// GPIOD üzerindeki pinler başlatılıyor.

GPIO_Init(GPIOD, &GPIO_InitDef);

[/php]

 

User butonu için yaptığımız konfigürasyon ayarları aşağıda gösterilmektedir.

[php]

//GPOIA

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

//Pin 0

GPIO_InitDef.GPIO_Pin = GPIO_Pin_0;

//Mode giriş olarak ayarlanıyor.

GPIO_InitDef.GPIO_Mode = GPIO_Mode_IN;

//Çıkış tipi push-pull olarak ayarlanıyor.

GPIO_InitDef.GPIO_OType = GPIO_OType_PP;

GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_DOWN;

//50MHz pin hızı

GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;

// GPIOA üzerindeki pinler başlatılıyor.

GPIO_Init(GPIOA, &GPIO_InitDef);

[/php]

 

Peki ben butonun durumunu nasıl denetleyeceğim.Aşağıda gösterilmektedir.

[php]

GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)

[/php]

 

Bunların hepsini inceledikten sonra kodlarımızın tamamı aşağıda gösteriliyor..

[php]

#include "stm32f4xx_rcc.h"

#include "stm32f4xx_gpio.h"

int main(void) {

GPIO_InitTypeDef GPIO_InitDef;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

GPIO_InitDef.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15;

GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;

GPIO_InitDef.GPIO_OType = GPIO_OType_PP;

GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;

GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;

//Initialize pins

GPIO_Init(GPIOD, &GPIO_InitDef);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

GPIO_InitDef.GPIO_Pin = GPIO_Pin_0;

GPIO_InitDef.GPIO_Mode = GPIO_Mode_IN;

GPIO_InitDef.GPIO_OType = GPIO_OType_PP;

GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;

//Initialize pins

GPIO_Init(GPIOA, &GPIO_InitDef);

while (1) {

if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) {

GPIO_SetBits(GPIOD, GPIO_Pin_12| GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15);

} else {

GPIO_ResetBits(GPIOD, GPIO_Pin_12| GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15);

}

}

}

[/php]

Proje dosyalarına buradan ulaşabilirsiniz.

Proje çalışma videosunu buradan izleyebilirsiniz.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  STM32F4 Discovery

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Lazer İşleme Makinesi Yapımı

Merhaba arkadaşlar,bu projemizde sizlerle birlikte lazer işleme makinesi yapımını göreceği…