Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. /* ----------------------------------------------------------------------------
  2. Pliki naglowkowe
  3. --------------------------------------------------------------------------*/
  4. #include "MKL46Z4.h"
  5. #include <stdint.h>
  6. #include "uart2.h"
  7.  
  8.  
  9. /* ----------------------------------------------------------------------------
  10. Funkcje
  11. --------------------------------------------------------------------------*/
  12.  
  13. /* Inicjalizacja UART2. */
  14. void init_UART(void){
  15. SIM->SCGC4 |= SIM_SCGC4_UART2_MASK; /* Odblokowanie zegara dla UART2. */
  16. SIM->SCGC5 |= SIM_SCGC5_PORTE_MASK; /* Odblokowanie zegara dla portu E. */
  17. PORTE->PCR[16] |= PORT_PCR_MUX(3UL); /* Pin Tx (PTE16). */
  18. PORTE->PCR[17] |= PORT_PCR_MUX(3UL); /* Pin Rx (PTE17). */
  19.  
  20. UART2->C2 &=~ UART_C2_TE_MASK; /* Wylaczenie nadajnika. */
  21. UART2->C2 &=~ UART_C2_RE_MASK; /* Wylaczenie odbiornika. */
  22.  
  23. UART2->BDH |= UART_BDH_SBR(156>>8); /* Ustawianie predkosci (9600b/s). */
  24. UART2->BDL |= UART_BDL_SBR(156); /* Ustawianie predkosci (9600b/s). */
  25.  
  26. UART2->BDH &=~ UART_BDH_SBNS_MASK; /* 1 bit stopu (format ramki). */
  27. UART2->C1 &=~ UART_C1_M_MASK; /* 8 bitow danych (format ramki). */
  28. UART2->C1 &=~ UART_C1_PE_MASK; /* Brak bitu parzystosci (format ramki). */
  29.  
  30. UART2->C2 |= UART_C2_TE_MASK; /* Wlaczenie nadajnika. */
  31. UART2->C2 |= UART_C2_RE_MASK; /* Wlaczenie odbiornika. */
  32. }
  33.  
  34.  
  35. /* Wysylanie znaku. */
  36. void char_write_UART(char data) {
  37. while(!(UART2->S1 & 0x80));
  38. UART2->D = data;
  39. }
  40.  
  41.  
  42. /* Wysylanie lancucha znakow. */
  43. void write_UART(char str[]) {
  44. int i = 0;
  45. while(str[i]) {
  46. char_write_UART(str[i]);
  47. i++;
  48. }
  49. }
  50.  
  51.  
  52. /* Odpytywanie rejestru odbiorczego. */
  53. int available_UART(void) {
  54. /* Sprawdzamy czy sa dane w rejestrze odbiorczym. */
  55. if( UART2->S1 & (1UL<<5)) return 1;
  56. else return 0;
  57. }
  58.  
  59.  
  60. // Pobieranie danych z rejestru odbiorczego.
  61. char read_UART(void) {
  62. return UART2->D;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement