STM32F4 de 1 pinden 3V uygulayıp başka bir pinle led yakma

Başlatan mktogr, 18 Aralık 2015, 02:48:51

mktogr

Herkese selamlar,

öncelikle 10 senedir birfiil internet kullanan biri olarak bu kadar faydalı ve güzel bir site görmedim emeği geçen herkesin ellerine sağlık, bu kadar geç farketmek benim ayıbım.

ben stm32f4 kitiyle uğraşmaya yeni yeni başladım bu yüzden sorumu biraz garip ve basit bulabilirsiniz :)

bir kapasitif sensör yaptım ve bu sensörün çıkışından 3V u STM32F4 ün bir pinine uygulayıp başka bir pine bağladığım ledi yakmak istiyorum, uğraştım ettim yapamadım yardımcı olabilirseniz çok sevinirim. Bu uygulamadaki kodları anlayabilirsem 1 basamak daha ilerleyeceğimi düşünüyorum.

mktogr

Hala problemime yanıt bulamadım malesef.

Şu kodları kullanarak deniyorum;

GPIO_InitTypeDef GPIO_Sensor;
int main()
{
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

  GPIO_Sensor.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_3;
  GPIO_Sensor.GPIO_Mode = GPIO_Mode_OUT | GPIO_Mode_IN;
  GPIO_Sensor.GPIO_OType = GPIO_OType_PP;
  GPIO_Sensor.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_Sensor.GPIO_PuPd = GPIO_PuPd_NOPULL;
   
   while(1)
   {
      if (GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)==1)
      GPIO_SetBits(GPIOD,GPIO_Pin_15);
      else
      GPIO_ResetBits(GPIOD,GPIO_Pin_15);
      
   }
}

fakat sonuç alamadım, programı yüklediğimde;
no "read" permission hatası,
run dediğimde ;
no"write" permission hatasını veriyor.Yardımcı olabilirseniz çok sevinirim.

muhittin_kaplan

GPIO_InitTypeDef GPIO_Sensor;
int main()
{
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);//d portuna clk ver

  GPIO_Sensor.GPIO_Pin = GPIO_Pin_15;// pin 15 i seç
  GPIO_Sensor.GPIO_Mode = GPIO_Mode_OUT;//out yap
  GPIO_Sensor.GPIO_OType = GPIO_OType_PP;//pushpull yap
  GPIO_Sensor.GPIO_Speed = GPIO_Speed_100MHz;//max 100mhz de çalışsın
  GPIO_Sensor.GPIO_PuPd = GPIO_PuPd_UP; //pulup yap
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_Sensor.GPIO_Pin = GPIO_Pin_3;// pin 3 i seç
  GPIO_Sensor.GPIO_Mode = GPIO_Mode_IN;//in yap
  GPIO_Sensor.GPIO_OType = GPIO_OType_PP;//pushpull yap
  GPIO_Sensor.GPIO_Speed = GPIO_Speed_100MHz;//max 100mhz de çalışsın
  GPIO_Sensor.GPIO_PuPd = GPIO_PuPd_NOPULL; //pulup yapma
  GPIO_Init(GPIOD, &GPIO_InitStructure);

   while(1)
   {
      if (GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)==1)
      GPIO_SetBits(GPIOD,GPIO_Pin_15);
      else
      GPIO_ResetBits(GPIOD,GPIO_Pin_15);
     
   }
}

mktogr

dediğiniz şekilde de tekrar denedim fakat hala;

*** error 65: access violation at 0x40023800 : no 'read' permission

hatasını veriyor.

muhittin_kaplan

Sanki yuklemeyle alakali bir sorununuz mu var ? Derleniyormu program ? Hangi derleyici yada ide yi kullaniyorsunuz

BLİZZARD

Dostum config ayarlarını programda yaptın mı ? Hse value ,reset vs ...

Okan AKÇA


z

Projede çipini seçtinmi?

Debug - simülator seçimini yaptın mı?

Elindeki jtag cihazını tanıttınmı?

Sanki simülatörle çalışıyorsun gibime geldi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mktogr

İlginiz ve yardımlarınız için çok teşekkürler.

Simulatörde çalışıyormuşum, debuggerı seçince düzeldi.