merhaba. mikroc for arm ile stm32f103vet6 microcontrollerimin usart pinlerinden interrupt ile veri alayim dedim. code larimi yazdim. usart1 ile calistirabildim. usart2 ilede calistirabildim. usart3 ile calistiramadim. USART3_CR1 un RXNEIE bitini enable edince. usart3 cokuyor. ne veri gonderebiliyor. nede veri alabiliyor. example code larim soyle.
init icersinde usart3 u acip interruptini enable ediyorum.
UART3_Init(9600);
Delay_ms(100);
// Uart3 interrupts enable ediliyor!
USART3_CR1.B5 = 1; // bu biti acinca USART3_Write(birseyler); seklinde gonderimde yapamiyoruz.
NVIC_IntEnable(IVT_INT_USART3);
void Usart3_RX() iv IVT_INT_USART3 ics ICS_AUTO
{
unsigned char Rx_Buffer_3 = 0;
// Uart OK ise veriyi cekmeye basla!
if (UART3_Data_Ready())
Rx_Buffer_3 = UART1_Read();
Heard_Led = ~Heard_Led;
}
ayni seyleri usart1 ve usart2 icin denedim. calistilar. usart3 teki problem nedir? birde usart3 u advanced sekilde acmayida denedim. birsey degismedi. :-\
mesaj birleştirme:: 09 Ağustos 2015, 23:16:54
bu arada usart3 pb10 ve pb11 e baglilar.
mesaj birleştirme:: 09 Ağustos 2015, 23:22:18
usart3 un receiver interrupt ozelligini acinca. USART3_CR1.B5 = 1; system normal calismaya basliyor.
biz veri gondermek istersek veya. bilgisayar veri gonderirse. takilip kaliyor. simdi bunu kesfettim. main e led blink yerlestirdim.
hic birsey yapmayinca led blink durmadan calisti. pc den birsey gonderdim. microcontroller takildi.
daha sonra led blink in sonuna usart3_write code unu yerlestirdim. led 1 kez blink yapti. sonra yine takildi. birseyler ters gidiyor :-\
mesaj birleştirme:: 09 Ağustos 2015, 23:31:07
sorunu buldum! :)
copy paste yapmanin kurbani olmusum.
Rx_Buffer_3 = UART1_Read();
burada usart3 un interrupt functionunda usart1 read yapiliyor. sorunum buymus. simdi cozdum! :)