Garip bir sorun

Başlatan görkem, 28 Aralık 2018, 11:28:01

görkem

Arkadaşlar Merhaba,

stm32f030 işlemci ile usart dan veri çekiyorum veri çekimi bittiğinde HAL_UART_RxCpltCallback fonksiyonunda gidiyorum bu fonksiyonda 24lc256 eepromu'na veri yazmak istiyorum fakat işlemci çakılıyor.mainde eeproma veri yazıp okuyabiliyorum onda sorun yok.Fikrinize ihtiyacım var.

İyi Çalışmalar dilerim.

apsis

Sen hiç eepromun datasheet'ini inceledin mi? Eeprom I2C ile haberleşiyor. Uart ile değil.
"Makineye Beyin" MEKATRONİK

RaMu

Tahmin:
Muhtemelen uart callback kesmesi içinde i2c ile eeproma veri yazıyor,
doğal olarak işlemci error rutinlerine gidiyordur.

Debug ile inceleyip uart callback içine breakpoint koyarak nerede hangi adımda takılıp oradan
nereye muhtelmelen hangi error rutinine gidip çakıldığını bulmaya çalışın.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

e-zeki

f030 MCU'larda I2C ve USART(hatta neredeyse tüm modüller) aynı Bus üzerinden clock erişimi sağlıyor. Uart kesmesi içerisinde I2C modülüne o yüzden erişemiyorsunuz. kesme içerisinde bir değişken durumuyla oynayarak main'de I2C'yi kullanmaya çalışın.

F493

Selam,

Alıntı yapılan: apsis - 28 Aralık 2018, 15:05:26Sen hiç eepromun datasheet'ini inceledin mi? Eeprom I2C ile haberleşiyor. Uart ile değil.

@görkem hocam Uart ile yazıyorum demiyor zaten, Uart içinde yazıyorum diyor, ayrıca SPI Eepromlar da var.  ;)

Çakılma derken Hard Fault'a mı düşüyor işlemci? @z hacanın hard fault'un nereden geldiğini aşamalarıyla anlatan bir video su var dı ben faydalanmıştım.  Sorunu tespit etmek gerekli o şart, fakat yöntem olarak bunu interrupt içinde yapmamak lazım.

Esen kalın.

görkem

@apsis keşke önce düzgün okuyup anlasaydınız  eepromun I2C ile haberleştiğini bende biliyorum!
Daha açıklayıcı anlatayım  usarttan veri çekip I2C ile eeproma gelen veri yazılacak fakat usart callback kesmesinin içerisinde  eeproma yazma yaparken işlemci çakılıp kalıyor.callback kesmesine girmeyip normal veri yazdırayım dediğimde sorunsuz yazabiliyorum zaten.

@RaMu dediklerinizi dikkate alıp inceleyeceğim.

görkem

@e-zeki siz aynı hatta deyince bir inceledim ve bütün modüller aynı bus üzerinden clock alıyormuş kullandığım.
 


dediğiniz şekilde bir değişken ile oynayarak yazdırmam gerekecek sanırım. başka bir yöntem olabilir mi diyede düşünüyorum aslında.

@F493 öneriniz için teşekkür ederim evet hard fault'a düşüyor resetlemem gerekiyor.@z hocanın hard fault ile ilgili videosunu izleyeyim hemen.
aslında kesme ile kullanmak istemiyordum fakat hızlı işlem yapmam gerektiği için kesme içinde kayıt etmek istemiştim.

apsis

@görkem arkadaşım kusura bakma ben register ile doğrudan erişim yapıyorum. O yüzden uart deyince kütüphanede ı2cnin dahil olduğunu düşünmemiştim.
"Makineye Beyin" MEKATRONİK