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);}
}
}
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.
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)
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.