STM32F103 PA15'i Toggle Yapamıyorum

Başlatan Mucit23, 23 Mayıs 2018, 10:38:27

Mucit23

Selamlar

STM32F103C8'de PA15'i toogle yapamıyorum. Bu pin normalde JTAG_JTDI için ayrılmış. Ben SWD ile programlama yapıyorum. Dolayısıyla bu pine gerek yok.

PA15'i çıkış olarak ayarlarken aynı zamanda Remap'dan JTAG ve SJW yi kapatmayı denedim

   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);

Fakat olmadı. Hala PA15'i kullanamıyorum. PA15'i çıkış olarak kullanabilmek için Ne yapmak gerekir?

kimlenbu

Aynı hataya ben de düşmüştüm, sonra "remap" deneyip senin durumuna gene düşmüştüm. Ufak bir ek yapman yeterli APB2_AFIO clockunu da açman gerek.

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);   
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

Mucit23

Alıntı yapılan: kimlenbu - 23 Mayıs 2018, 10:47:22Aynı hataya ben de düşmüştüm, sonra "remap" deneyip senin durumuna gene düşmüştüm. Ufak bir ek yapman yeterli APB2_AFIO clockunu da açman gerek.

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);   
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

Yok olmadı hocam.

Hemen Yanındaki pin olan PinB3 ile deneme yaptım. O pinde JTAG JTDO olarak kullanılıyor. İlk başta Remap'dan SWJ_JTAGDisable yaparak ulaşmayı denedim olmadı fakat sonrasında dediğiniz Gibi AFIO'nun clock'unu açtım şimdi o pine erişebiliyorum. Toggle felan yapabiliyorum. Ama A15 olmuyor.

kimlenbu

sormaya korkuyorum ama dalgınlıkla

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

demeyi unutmuş olabilir misin ?

direkt kendi çalışan kodumdan copy paste :


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

  /* Fren Cikisi                                                    */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

 

Mucit23

Yok hocam ondan değil. PA15'e doğrudan osiloskop ile bakınca çalıştığını gördüm. Board üzerinde o pine LED bağlamıştım herhalde o an ama boardda temassızlık oluyormuş.  :-\

Şimdi çalıştı.

Neyse Özetlersek, JTAG pinlerini GPIO olarak kullanmak için

1 AFIO Clock'u açılacak
2 Remap'dan o JTAG Disable yapılacak.

Burada kalsın.