Sdílejte chiptron.cz na sociálních sítích



RSS feeds

USART1 - přerušení/interrupt STM32L100Tisk

Další mini pokračování z předchozího článku o programování USARTu pro STM32L100 a jemu podobné typy (STM32F0, STM32F3, STM32F4...)
USART - STM32L100
V tomto článku se znova podíváme na USART, tentokrát ale s přerušením. Budeme řešit jenom jeden, trochu větší problém a to zápis přerušení do NVIC (Nested vectored interrupt controller) a ISER (Interrupt Set Enable Register). Článek opět vychází ze stránek http://joudove.8u.cz/.
Zde přibyl pouze kousek kódu a to povolení přerušení od přijmu (receive).

Poté ještě povolíme přerušení v řadiči přerušení.

Tuto část vysvětlím. Každé přerušení má své číslo, toto číslo se musí zapsat do registru NVIC resp. ISER. USART1 má číslo 37. To se nám ovšem do 32 bit registru nevejde. Proto je ISER rozdělen na ISER[0] a ISER[1]. V ISER[0] jsou přerušení od 0 do 31 a v ISER[1] od 32 do 56. Část seznamu přerušení vidíte níže.

Kompletní seznam najdete v stm32l1xx.h.
A zpět k předešlému zápisu. Ten upravený vychází ze zápisu:

Pro zakázaní přerušení je použit zápis:

Předchozí část kódu byl zkrácený zápis tohoto. Jinak ho můžete také zapsat takto:

Což ve zkratce znamená, že s hodnotou USART1_IRQn = 37 provedeme bitový součin (&) s hodnotou 0x1F (31) což ve výsledku dá hodnotu 5. Po bitovém posunu o 5 se povolí přerušení od USART1.
Na závěr přikládám zdrojové kódy:

MAIN.C

Do STM32L1xx_it.c někam přidáme obsluhu přerušení:

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
7,928,382 návštěv