Aktywne Wpisy
![Cane](https://wykop.pl/cdn/c0834752/8a4109c46e88449943d360a75ae19c281f4352cc619cac60fe1b12734d705052,q60.jpg)
Cane +19
Dwa lata temu zmarł mi tata i no jest mi dosyć ciężko. Zdarzało mi się parę razy na imprezie u znajomych po alkoholu z deczka wyżalić że jest mi ciężko z tym nadal. No i usłyszałem od kumpla że jedna z dziewczyn z takiej imprezy mówiła jemu i jego dziewczynie jak bardzo ją wnerwia że się tak użalam nad soba i w ogóle a na samej imprezie niby mi współczuła. Ehh jak
![elozapiekanka](https://wykop.pl/cdn/c3397992/elozapiekanka_oCZwcRzfob,q60.jpg)
elozapiekanka +50
W szkole miałem typa ktorego matka skończyła liceum z moją matką i miałem porównanie co do zycia
Koleś jeździł z ojcem na mecze, wakacje, do aquaparku ( mieszkamy koło Niemiec więc tam jeździł) co chwilę remont pokoju
Dodam że w szkole zawsze miał hajs żeby coś kupić na śniadanie a nie gówno kanapki
McDonald's czy firmowe napoje, serki Monte a nie #!$%@?
Matka kupowała czokoszoki i mówiła że to lepsze niż oryginal
Koleś jeździł z ojcem na mecze, wakacje, do aquaparku ( mieszkamy koło Niemiec więc tam jeździł) co chwilę remont pokoju
Dodam że w szkole zawsze miał hajs żeby coś kupić na śniadanie a nie gówno kanapki
McDonald's czy firmowe napoje, serki Monte a nie #!$%@?
Matka kupowała czokoszoki i mówiła że to lepsze niż oryginal
![elozapiekanka - W szkole miałem typa ktorego matka skończyła liceum z moją matką i mi...](https://wykop.pl/cdn/c3201142/3856ee70a67b7ab5d899ab7cd7ce442ee45e5c0247246d056a8c84da36a2abf0,w150.jpg)
źródło: china-poor-kids-rich-kids-comic-strip
Pobierz
It is cleared by a software sequence (an read to the USARTSR register followed by a read to the USARTDR register). as you can see I do it in my code, but for some reason the flag is not cleared.
Mimo to siedząc w debuggerze widzę, że cały czas jestem przerzucany do procedury.
Tutaj fragment kodu: klik
#programowanie #embedded
Komentarz usunięty przez autora
Dodałem parę linijek kodu, tak aby wartość DR na pewno była brana pod uwagę - więc dorzuciłem ifa, który w zależności od wartości DR zmienia wartość innej zmiennej volatile, ale nic to nie dało. Cały czas widzę, że bit IDLE w SR jest zapalony.
USARTCR1(usart) |= USARTCR1_RXNEIE;
Ale z drugiej strony są definicje, pozwalające ustawić w CR przerwanie na to zdarzenie. Już się zastanawiam czy może to coś jest nie tak w przypadku tego MCU, ale nie mogę
Komentarz usunięty przez autora
Nie wdając się zbytnio w szczegóły - potrzebuję tego do wywołania procedury przetwarzania danych, które zostaną przesłane przez USART i które DMA skopiuje do mi bufora. Dane te mogą być zmiennej długości więc przerwania HT oraz TC z DMA nie do końca mi leżą.
- zwykły kod
- przpuszczony przez preprocesor, więc widać na co się rozwijają makra
Muszę to porównać z adresami ze struktur z CMSIS.
Funkcję LLUSARTClearFlag_IDLE wziąłem z kodu źródłowego HAL od STM, tak aby mieć u siebie dokładnie to co oni w tej procedurze.
_STATICINLINE void LLUSARTClearFlagIDLE(USARTTypeDef *USARTx)
{
_IO uint32t tmpreg;
tmpreg = USARTx->SR;
(void) tmpreg;
tmpreg = USARTx->DR;
(void) tmpreg;
}
Niemniej wychodzi na to samo i wygląda poprawnie, bo SR jest pod adresem 0x40013800, a DR jest pod 0x40013804.
Tak więc nie wiem czemu to u Ciebie nie działa. Może jednak coś Ci wysyła
- wyłaczyć przerwanie IDLE
- włączyć przerwanie RX
- po pierwszym otrzymanym bajcie w isr właczyć przerwanie IDLE, wyłaczyć RX
- po przerwaniu IDLE wyłaczyć... przerwanie IDLE i włączyć ponownie RX.
Tylko nie wiem czy to nie jest workaround.
Ale wracając jeszcze do pytania, tak aby miał pewność, że dobrze rozumiem.
Wlączam przerwanie na IDLE Line Detected, nie wysyłam żadnych danych - czy w tej sytuacji procedura obsługi tego przerawnia powinna być wywoływana (raz, cały czas), czy to przerwanie powinno zostać dopiero wywołane w momencie po otrzymaniu jakichś danych, gdzie nic już więcej nie jest otrzymywane przez