Stm32 i2c hal library interrupt handler

isoment01

Üye
Katılım
26 Haz 2016
Mesajlar
197
Puanları
1
Yaş
31
Arkadaşlar merhaba, stm32 ile cubemx'te interrupt configürasyonları yaptım fakat interrupti çalıştıramadım. Bu konuda bilgisi olan arkadaşlar varsa yardımlarını bekliyorum.

Sorumu şöyle açayım; elimde bir touch ic bulunmakta bu ic'den sürekli veri okumak yerine ben dokunduğumda veri okumak istiyorum. IC i2c ile haberleşiyor ve ayrı olarak change bacağı bulunmakta. Kafamı karıştıran mevzu şu ben bu change bacagını dış kesme olarak kullanıp her değişimde i2c (i2c'yi interrupt olarak değil normal ayarlayacağım ) ile veri okusam mı doğru olur yoksa i2c interrupt'ı kurup veriyi bu şekilde mi okuyacağım.
İkincisi hk. bilgim hiç yok.
 
Son düzenleme:
2.si zaten yok.
Harici kesme kurup,
kesmede bir bayrak işaretleyip,
kesmenin geldiğini ana döngüde takip edip,
geldiğinde i2c ile gerekli okumaları yaparsın.
 
2.si zaten yok.
Harici kesme kurup,
kesmede bir bayrak işaretleyip,
kesmenin geldiğini ana döngüde takip edip,
geldiğinde i2c ile gerekli okumaları yaparsın.
Kesmenin içinde okuma yapmak sağlıklı değil mi? Zaman kritik işlemim yok.
 
I2C fonksiyonlarını kendin yazmadığın için kesme içinde kullanılırsa problem çıkarır mı bilemezsin.
En azından karşıdan cevap gelmeyebilir,
bunun için bir zaman aşımı beklersin,
kesmede bunu beklemek hiç iyi değil.
İyi bir alışkanlık olarak kesme dışında halletmek doğru olur.
Yinede kesme içinde ve dışında iki şekildede deneyebilirsin.
 
I2C fonksiyonlarını kendin yazmadığın için kesme içinde kullanılırsa problem çıkarır mı bilemezsin.
En azından karşıdan cevap gelmeyebilir,
bunun için bir zaman aşımı beklersin,
kesmede bunu beklemek hiç iyi değil.
İyi bir alışkanlık olarak kesme dışında halletmek doğru olur.
Yinede kesme içinde ve dışında iki şekildede deneyebilirsin.
tamam dedikleriniz çok mantıklı ama nasıl yapacağım ?

Kod:
void EXTI0_1_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_1_IRQn 0 */

  /* USER CODE END EXTI0_1_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
    HAL_GPIO_WritePin(GPIOC,LD4_Pin,GPIO_PIN_SET);
  /* USER CODE BEGIN EXTI0_1_IRQn 1 */
//read_keys(0x03, &hi2c1);
  /* USER CODE END EXTI0_1_IRQn 1 */
}
interrupt'ım bu şekilde change bacagında kesme meydana geldiğinde read keys fonksiyonunu call etmesi lazım ana döngüde nasıl çağıracağım ?

read keys komutumu ana döngüde nasıl istendiği zaman aktif ederim ? Sadece bu işi yaptırmak istemiyorum daha yapacağım başka şeyler de olacak.
 
Son düzenleme:

Forum istatistikleri

Konular
127,956
Mesajlar
913,904
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Çevrimiçi üyeler

Geri
Üst