Start z STM32 VL Discovery – 6 — UART

Start z STM32 VL Discovery – 6 — UART
Razem głosów: 5 co stanowi: 100% całości.

rs232 logo ny

USART jest krewnym RS232, który powsta? w 1971 roku i do dzi? stanowi niejako podstaw? komunikacji urz?dze?, niestety w nowych komputerach nie znajdziemy ju? charakterystycznego 9 pinowego gniazda COM, dlatego musimy si? posi?kowa? ró?nymi konwerterami pod??czanymi do portu USB. W tym miejscu warto nadmieni? i? nasze VLDiscovery posiada USART, który nie posiada konwertera napi?? wi?c i tak musimy si? posi?kowa? przelotk? na USB.

UWAGA !!

VLDiscovery akceptuje sygna?y TTL  o poziomach 3,3 i 5V

Najlepsza do pracy i zabawy jest popularna przej?ciówka oparta o uk?ad FT232RL  firmy FTDI.

 

ZACZYNAMY

Zainteresujmy si? teraz alternatywnymi funkcjami pinów 9 i 10 GPIO na PORCIE A. Jak wida? mamy tam dost?pne alternatywne funkcje :

PA9 USART1_TX

PA10 USART1_RX   

Jak wiadomo zapewne b?dziemy potrzebowa? jeszcze jakiego? programu typu Hyperterminal czy Terminal 1.9 by Bray do naszej zabawy. Nasz program b?dzie zajmowa? si? za?wiecaniem diodek LED

LED3 i LED4  po wys?aniu odpowiedniego rozkazu przez terminal.

USART jest stosunkowo ?atwy do opanowania na ka?dym mikrokontrolerze wi?c nie b?dziemy si?

zajmowa? szczegó?ami technicznymi transmisji bo sa te? one znane ka?demu zainteresowanemu.

W tym wypadku u?yjemy prostego dost?pu do portu USART w przerwaniu, który jest wystarczaj?cy do naszego testu i zapoznania si? z wysy?aniem ma?ych ilo?ci danych.

W przypadku du?ych ilo?ci danych lepiej u?ywa? dost?pu do DMA co omówimy w jednej z nast?pnych cz??ci. W naszym wypadku wybierzemy sobie pr?dko?? transmisji  19200bps. Funkcja inicjacji USARTu w tym wypadku prezentuje si? nast?puj?co:

Jak wida? funkcja inicjuj?ca USART w przerwaniu jest stosunkowo prosta.

OBS?UGA PRZERWANIA 

W naszym programie zdefiniujemy 2 osobne bufory dla odbioru i nadawania. B?d? one obs?ugiwane

w przerwaniu, które jest zdefiniowane w pliku STM32F10x_it.c, gdzie wstawiamy kod do funkcji,

a wygl?da to tak:

Powy?szy kod obs?ugi przerwania jest oczywisty , gdy tylko odbierzemy 0x0a poprzez zmienn?

RX_odebrane zostajemy poinformowani ?e zosta?y odebrane dane nadchodz?ce przez USART.

Natomiast odwrotnie gdy chcemy wys?a? dane.

Na t? chwil? zostawiam wam zabaw? z UARTEM. Pobawcie si? teraz sami …

 

 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

4 myśli nt. „Start z STM32 VL Discovery – 6 — UART

  1. Pingback: Kurs programowania STM32 VL Discovery | SunDuino – Nowy wymiar elektroniki

  2. dlatego , że wskazuję że ma być użyty UART 1 z konfiguracją ustawioną w InitStructure.

  3. Rozumiem, że przesyłasz konfigurację, ale dlaczego Twoją funkcję void USART_Init(void) nazywasz tak samo jak już istniejącą funkcję w bibliotece stm? Z tego co mi wiadomo w c nie można przeciążać funkcji. ;D

Możliwość komentowania jest wyłączona.