İşlemciyi Stop Mod'tan Çıkaramıyorum

Başlatan yamak, 19 Aralık 2013, 10:09:09

yamak

Stm32f303 kullanıyorum işlemciyi stop mod'a sokuyorum fakat çıkaramıyorum.
İşlemciyi stop mod'a soktuntan sonra usart3 RXNE interrupt ı oluştuğunda stop mod'dan çıkmasını istiyorum.Aslında çıkıyor ama tekran main fonksiyonuna dallanmıyor.Çünkü ISR ın içindeki kodlar çalışıyor ve orda kalıyor.Ben de ISR daki işleri bitirince yine ISR içinde cpu'ya reset attırarak sorunu çözdüm ama bu uygulamada reset bi sorun teşkil etmiyodu.Program counter ın main fonksiyonunda kaldığı yere geri dönmeme sebebi nedir?Stop mod'a sokarken aşağıdaki işlemleri uyguluyorum.
tmpreg=PWR->CR;
tmpreg&=((uint32_t)0xFFFFFFFC);
tmpreg|=0x01;
PWR->CR=tmpreg;
SCB->SCR|=0x04;
__WFI();

İlk olarak PWR_CR registerının PPDS bitini 1 yapıyorum(uyku moduna sokmak için),LPDS bitini 0 yapıyorum(voltaj regulatörü düşük güç moduna çekmek içi).
Sonra SCB_SR registerının 2. bitini 1 yapıyorum.
Ensonda da I nterrupt ı bekliyorum.
Bunlar haricinde de USART3 ün UESM bitini de 1 yapıyorum


yamak

Hocam burdaki örneklerden işlemciyi EXTI ile uyandırıyolar.Ben ise usart ile uyandırmak istiyorum.Bence bendeki sorun usart ayarlarında.Çünkü işlemci stop moda giriyor ama uyanmıyor.