Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: ido2323 - 21 Eylül 2016, 14:45:02

Başlık: stm32f407 discovery keil buton ile led yakma örneği
Gönderen: ido2323 - 21 Eylül 2016, 14:45:02
butona basınca led yanar, tekrar basınca led söner. Option of Target kısmında C/C++ kısmında Define kısmına ekle: USE_STDPERIPH_DRIVER, STM32F4XX, HSE_VALUE=8000000

#include "stm32f4xx_rcc.h"              // Keil::Device:StdPeriph Drivers:RCC
#include "stm32f4xx.h"                  // Device header
#include "stm32f4xx_gpio.h"             // Keil::Device:StdPeriph Drivers:GPIO

void Delay(uint32_t time)
{
    while(time)
time--;
}

int main()
{

GPIO_InitTypeDef GPIO_InitDef;

uint8_t button_input, buff=0;

  // output yapilancak pinler için reset ve clock bilgisini ayarlama
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

  //output girisleri için pin ayarlamalri
    GPIO_InitDef.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_12 | 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;
    //Pinleri aktif etme
    GPIO_Init(GPIOD, &GPIO_InitDef);

// input yapilancak pinler için reset ve clock bilgisini ayarlama
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

   //input girisleri için pin ayarlamalri
    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;
    //Pinleri aktif etme
    GPIO_Init(GPIOA, &GPIO_InitDef);



while(1)
{

button_input = GPIO_ReadInputDataBit( GPIOA, GPIO_Pin_0); // bunu GPIO kütüphanesinden aldik hazir kalip
   while(GPIO_ReadInputDataBit( GPIOA, GPIO_Pin_0));

Delay(1252451);

buff = buff + button_input;

    if(buff % 2) // bölümden kalan tek mi çift mi seklinde bakar
{

GPIO_SetBits(GPIOD, GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_12 | GPIO_Pin_15 );}
    else
{
GPIO_ResetBits(GPIOD, GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_12 | GPIO_Pin_15);}

}
}
Başlık: Ynt: stm32f407 discovery keil buton ile led yakma örneği
Gönderen: ydadelen - 24 Eylül 2016, 10:56:04
Merhaba, sanırım STM32 programa ile uğraşıyorsunuz. Size bir soru sormak istiyordum. Acaba STM32F4 veya başka bir STM32 Mcu'yu kütüphane kullanmadan register seviyesinde programlama yapmak için önerebileceğiniz bir kaynak var mı? St'nin sitesinde kaynak bulmak samanlıkta iğne aramaktan daha zor. Teşekkürler.
Başlık: Ynt: stm32f407 discovery keil buton ile led yakma örneği
Gönderen: sadogan - 24 Eylül 2016, 11:34:50
Z hocanın dersleri var.
https://www.picproje.org/index.php/topic,35721.0.html (https://www.picproje.org/index.php/topic,35721.0.html)
Başlık: Ynt: stm32f407 discovery keil buton ile led yakma örneği
Gönderen: piscopatos2 - 07 Ekim 2016, 16:52:49
registerlar ile çalışmak için gerekli herşey keil (derleyici) içerisinde var zaten, öncelikle HAL veya std lib kütüphaneleri ile yapacağınız projeyi yapıp çalıştığını görün, daha sonra kullanılan fonksiyonlara sağ tıklayıp "go to definition" sekmesine tıkladığınızda, o fonksiyonun yazılı olduğu c dosyası açılacaktır. bu fonksiyonları çalışarak register kullanımını çok rahat öğrenebilirsiniz.