-
Notifications
You must be signed in to change notification settings - Fork 2
Stellaris launchpad 02
Duomenų išvedimas per UART
======
| Kodo pavyzdys |
-——————
#include “inc/hw_memmap.h”
#include “inc/hw_types.h”
#include “driverlib/sysctl.h”
#include “driverlib/uart.h”
#include “driverlib/gpio.h”
#include “driverlib/pin_map.h”
int main(void)
{
// Nustatom veikimo dažnį (200MHz / 2.5 = 80MHz)
SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
// Įjungiam UART0 modulį (angl. peripheral)
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
// Įjungiam GPIOA modulį (angl. peripheral), kad galėtume naudoti GPIOA prievadais (ports/pins)
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
// Perjungiame PA0 prievadą (angl. pin) į alternativų režimą – UART RX režimą (būtent PA0, nes UART0 kaip RX naudoja PA0 prievadą (angl. pin)
GPIOPinConfigure(GPIO_PA0_U0RX);
// Perjungiame PAą prievadą (angl. pin) į alternativų režimą – UART TX režimą (būtent PA1, nes UART0 kaip TX naudoja PA1 prievadą (angl. pin)
GPIOPinConfigure(GPIO_PA1_U0TX);
// Po GPIOPinConfigure reikia nustatyti prievado (angl. pin) režimą (GPIO_DIR_MODE_*) – įeinantis (angl. input), išeinantis (angl. output) ar
// aparatinis (angl. hardware), srovės stiprumą (GPIO_STRENGTH_*) ir tipą (GPIO_PIN_TYPE_*)
// Nustato aparatinį (angl. hardware) režimą, 2ma srovę ir push-pull tipą
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
// Kad nereiktų visko atlikti kaip parašytą specifikacijoje (angl. datasheet) t.y. nustatinėti bitų ir/ar naudoti
// UARTDisable(), UARTEnable() metodų, pakanka viską nustatyti UARTConfigSetExpClk(…) metode
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
// Siunčiam šauktuko simbolį per UART
UARTCharPut(UART0_BASE, ‘!’);
while (1)
{
}
}
-——————
| Prisijungimas |
-——————
“Device Manager” susirandam su kokiu prievadu (port) dirba “Stellaris Launchpad” (UART0 naudojamas kaip virtualus COM prievadas (angl. port), todėl papildomai jungis, pavyzdžiui su laidais, prie tikro COM prievado (angl. port) jau nebereikia, o naudojant kitus (UARTx, kur x>0) reiktų jungtis laidais).
[201401212152 device manager.png]
Pasileidžiam putty programėlę, pasirenkam “Connection type:” į Serial, įvedam “Serial line”, “Speed”, spaudžiam Open
[201401212205 putty.png]
ir gaunam/siunčiam duomenis.
[201401212210 output.png]
-———————
| Jei meto klaidą |
-———————
[201401212311 error.png]
Per “Device Manager” reikia pabandyti disable/enable COM portą arba pakeisti porto numerį
-—————-
| RX interrupt |
-—————-
??? RX interruptas suveikia tik tada kai užsipildo FIFO buferis (default 8), todėl galima jį išjungti UARTFIFODisable(…)