Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ----------------------------------------------------------------------------
- Pliki naglowkowe
- --------------------------------------------------------------------------*/
- #include "MKL46Z4.h"
- #include <stdint.h>
- #include "uart2.h"
- /* ----------------------------------------------------------------------------
- Funkcje
- --------------------------------------------------------------------------*/
- /* Inicjalizacja UART2. */
- void init_UART(void){
- SIM->SCGC4 |= SIM_SCGC4_UART2_MASK; /* Odblokowanie zegara dla UART2. */
- SIM->SCGC5 |= SIM_SCGC5_PORTE_MASK; /* Odblokowanie zegara dla portu E. */
- PORTE->PCR[16] |= PORT_PCR_MUX(3UL); /* Pin Tx (PTE16). */
- PORTE->PCR[17] |= PORT_PCR_MUX(3UL); /* Pin Rx (PTE17). */
- UART2->C2 &=~ UART_C2_TE_MASK; /* Wylaczenie nadajnika. */
- UART2->C2 &=~ UART_C2_RE_MASK; /* Wylaczenie odbiornika. */
- UART2->BDH |= UART_BDH_SBR(156>>8); /* Ustawianie predkosci (9600b/s). */
- UART2->BDL |= UART_BDL_SBR(156); /* Ustawianie predkosci (9600b/s). */
- UART2->BDH &=~ UART_BDH_SBNS_MASK; /* 1 bit stopu (format ramki). */
- UART2->C1 &=~ UART_C1_M_MASK; /* 8 bitow danych (format ramki). */
- UART2->C1 &=~ UART_C1_PE_MASK; /* Brak bitu parzystosci (format ramki). */
- UART2->C2 |= UART_C2_TE_MASK; /* Wlaczenie nadajnika. */
- UART2->C2 |= UART_C2_RE_MASK; /* Wlaczenie odbiornika. */
- }
- /* Wysylanie znaku. */
- void char_write_UART(char data) {
- while(!(UART2->S1 & 0x80));
- UART2->D = data;
- }
- /* Wysylanie lancucha znakow. */
- void write_UART(char str[]) {
- int i = 0;
- while(str[i]) {
- char_write_UART(str[i]);
- i++;
- }
- }
- /* Odpytywanie rejestru odbiorczego. */
- int available_UART(void) {
- /* Sprawdzamy czy sa dane w rejestrze odbiorczym. */
- if( UART2->S1 & (1UL<<5)) return 1;
- else return 0;
- }
- // Pobieranie danych z rejestru odbiorczego.
- char read_UART(void) {
- return UART2->D;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement