STM32F072RB UART KİLİTLENME

Başlatan Murat Mert, 30 Ağustos 2019, 17:09:24

Murat Mert

S.A.
Arkadaşlar STM32F072RB ile modbus çalışmaları yapıyorum. 9600 baud da 10 ms haberleşme ve 300 ms timeout zamanında bazen 5000-15000 arası bazen 50.000 üzerinde bazende 2-3 gün sorunsuz çalışıyor. rx kesmesi içine ve timer kesmeşeri içine led toggle kurdum. Timerler 500ms ve 1000ms de onlarda sıkıntı yok ama rx kesmesi duruyor.


port ayarları

void modbus_init()
{
        GPIO_Digital_Output(&GPIOA_BASE, _GPIO_PINMASK_6);
        GPIO_Digital_Output(&GPIOA_BASE, _GPIO_PINMASK_5);
    // GPIO_Digital_Input(&GPIOC_BASE,  _GPIO_PINMASK_13);


        UART2_Init_Advanced(MODBUS_SERIAL_BAUD, _UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT, &_GPIO_MODULE_USART2_PA23);
        
        
     USART2_CR1bits.RXNEIE = 1;             // seri port enable RX interrupt biti aktif
     NVIC_IntEnable(IVT_INT_USART2);        // usart2 kesme aktif

        InitTimer2();
        InitTimer3();
        InitTimer14();
        EnableInterrupts();
       
}



seri port rx int açma kapama bunu yaptım yine kilitlendi


//==============================================================================

void modbus_rcv_off()
{

   USART2_CR1bits.RXNEIE = 0;             //Enable RX interrupt
   NVIC_IntDisable(IVT_INT_USART2);

}

//==============================================================================

void modbus_rcv_on(void)
{
    while(USART2_ISRbits.TXE == 0);  //Clear RX buffer.
    MODBUS_SERIAL_ENABLE_PIN = 0;      
    USART2_CR1bits.RXNEIE = 1;             //Enable RX interrupt
    NVIC_IntEnable(IVT_INT_USART2);
}


böylede kilitlendi


//==============================================================================

void modbus_rcv_off()
{

   USART2_CR1bits.RXNEIE = 0;             //Enable RX interrupt

}

//==============================================================================

void modbus_rcv_on(void)
{
    while(USART2_ISRbits.TXE == 0);  //Clear RX buffer.
    MODBUS_SERIAL_ENABLE_PIN = 0;      
    USART2_CR1bits.RXNEIE = 1;             //Enable RX interrupt
}

STM32F10CC8T6 da sipariş edip deneyeceğim bakalım onda da olacak mı???

   
mert07

mufitsozen

Cok buyuk ihtimalle Rx icin overflow, framing ve/veya parity error durumlari olusuyordur. Bunlari reset etmen lazim.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Murat Mert

S
Alıntı yapılan: mufitsozen - 30 Ağustos 2019, 17:18:03Cok buyuk ihtimalle Rx icin overflow, framing ve/veya parity error durumlari olusuyordur. Bunlari reset etmen lazim.

Sağolun hocam birbakayım. Pic18f serisi ile gayet sorunsuz çalışan stm32f072 ile düzgün çalıştıramadım. Akşam 103 serisi ile denedim. Kartlarımın 2 side nucleo64 serisi st nin kartları onda hiç sıkıntı olmadı 103 olan 64 mhz de çalışıtırdım kristal olmadığı için ve hattabiraz zorladım 167 tag da 496.300 sorguda 2 hata vermiş sadece.
mert07

mufitsozen

#3
Alıntı yapılan: Murat Mert - 31 Ağustos 2019, 07:43:12S
Sağolun hocam birbakayım. Pic18f serisi ile gayet sorunsuz çalışan stm32f072 ile düzgün çalıştıramadım. Akşam 103 serisi ile denedim. Kartlarımın 2 side nucleo64 serisi st nin kartları onda hiç sıkıntı olmadı 103 olan 64 mhz de çalışıtırdım kristal olmadığı için ve hattabiraz zorladım 167 tag da 496.300 sorguda 2 hata vermiş sadece.

Ben elektronik, MCU pic, stm filan cok anlamadigim icin, anladigimi bir tekrar edeyim.

benim cift karburatorlu bir 1967 ford mustang'im var, gaza basinca arada sarsiliyor, tam atesleme yapmiyor diyorsun, sonrada ekliyorsun abimin egea'da da 496.300 kere gaza basiyorum, hic prb yok, komsunun renault'unda da prb olmuyor. Bu neden olur?.

Bende bundan anladigim kadari ile sana oneriyorum sen ford mustang'a odaklan, oburlerinin ne yaptiginin hatayi bulmanda sana yardimi olmaz.

Bol sans.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Murat Mert

Alıntı yapılan: mufitsozen - 31 Ağustos 2019, 12:30:27Ben elektronik, MCU pic, stm filan cok anlamadigim icin, anladigimi bir tekrar edeyim.

benim cift karburatorlu bir 1967 ford mustang'im var, gaza basinca arada sarsiliyor, tam atesleme yapmiyor diyorsun, sonrada ekliyorsun abimin egea'da da 496.300 kere gaza basiyorum, hic prb yok, komsunun renault'unda da prb olmuyor. Bu neden olur?.

Bende bundan anladigim kadari ile sana oneriyorum sen ford mustang'a odaklan, oburlerinin ne yaptiginin hatayi bulmanda sana yardimi olmaz.

Bol sans.


 ;D  ;D  ;D  ;D

hocam bir şahinim var tüp gazlı basıyorsun gidiyor.(pic18f)   :o  :o
Albea ya binelim dedik nazlı çıktı(benden kaynaklı kesin). (stm32f072rb)  8-)  8-) 
Egea ya bindim klima açık sıkıntısız. (stm32f103rb)  :)  :) 

 ;D  ;D  ;D  ;D
Hocam Allah sağlık sıhhat ağız tadı versin. Süper bir tarif etmişsiniz.  ::ok  ::ok  ;D  ;D
mert07

mufitsozen

#5
Alıntı yapılan: Murat Mert - 01 Eylül 2019, 08:28:02Hocam Allah sağlık sıhhat ağız tadı versin. Süper bir tarif etmişsiniz.  ::ok  ::ok  ;D  ;D


Bilmukabele, sende sabah sabah yuzume tatli bir gulumseme getirdin ya, Allah senin de ne muradin varsa versin. Sabah sabah ciddi bir basagrim vardi, aa bir baktim o bile gecmis!! ;)

Sonucta kendine guveni cok olup, yazdiklarimdan dolayi ana avrat kufretmek yerine kendisi ile ve benimle dalga gecen birini de gordum ya bu forumda, o bana yeter. En azindan bir iki sene. Tabii moderatorler uyelerle dalga gectigin icin 3 ay banladik diye ceza vermezlerse (daha once verdikleri oldu ondan seyttim :( )

Bilge birisi cahil oldugunu kabullenmeyi goze alamayan bilge de olamaz demis.

Ogrenci yada mezunmusun, hangi okuldansin, do you speak english? biraz bilgi versene kendin hakkinda.

Biraz tesvik etmek icin herhangi bir HW yada SW problemini test etmek icin kullanabilecegin kurallarin listesi:



Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.