##// END OF EJS Templates
Merge
Merge

File last commit:

r25:b4b05488cb5e default
r46:7d306b65e7c9 merge dev_alexis
Show More
uart.h
118 lines | 3.1 KiB | text/x-c | CLexer
/*------------------------------------------------------------------------------
-- This file is a part of the libuc, microcontroler library
-- Copyright (C) 2012, Alexis Jeandet
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------------
-- Author : Alexis Jeandet
-- Mail : alexis.jeandet@gmail.com
-------------------------------------------------------------------------------*/
#ifndef UART_H
#define UART_H
#include <stdint.h>
#include <uhandle.h>
#include <streamdevices.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
typedef volatile struct uart_t
{
volatile void* _dev;
volatile int cfg;
volatile int speed;
}uart_t;
*/
typedef int uart_t;
#define uart1 0
#define uart2 1
#define uart3 2
#define uart4 3
#define uart5 4
#define uart6 5
#define uart7 6
#define uart8 7
#define uart9 8
typedef enum
{
uartparitynone = 0x1,
uartparityeven = 0x2,
uartparityodd = 0x3
}uartparity_t;
#define UARTPARITYMASK 0x3
typedef enum
{
uart7bits = 0x4,
uart8bits = 0x8,
uart9bits = 0xC
}uartbits_t;
#define UARTBITSMASK 0xC
typedef enum
{
uarthalfstop = 0x10,
uartonestop = 0x20,
uartonehalfstop = 0x30,
uarttwostop = 0x40
}uartstopbits_t;
#define UARTSTOPBITSMASK 0x70
extern uart_t uartopen(int count);
extern uart_t uartopenandconfig(int count ,uint32_t cfg,uint32_t speed,uint32_t TXpin,uint32_t RXpin,uint32_t RTSpin,uint32_t CTSpin);
extern int uartclose(uart_t uart);
extern int uartsetpins(uart_t uart,uint32_t TXpin,uint32_t RXpin,uint32_t RTSpin,uint32_t CTSpin);
extern int uartenable(uart_t uart);
extern int uartdisable(uart_t uart);
extern int uartsetconfig(uart_t uart,uint32_t cfg,uint32_t speed);
extern int uartsetspeed(uart_t uart,uint32_t speed);
extern int uartsetparity(uart_t uart,uartparity_t parity);
extern int uartsetdatabits(uart_t uart,uartbits_t databits);
extern int uartsetstopbits(uart_t uart,uartstopbits_t stopbits);
extern int uartputc(uart_t uart,char c);
extern char uartgetc(uart_t uart);
extern int uartputs(uart_t uart,char* s);
extern int uartgets(uart_t uart,char* s);
extern int uartputnc(uart_t uart,char* c,int n);
extern int uartgetnc(uart_t uart,char* c,int n);
extern int uartavailiabledata(uart_t uart);
extern int uartmkstreamdev(uart_t uart,streamdevice* strdev);
#ifdef __cplusplus
}
#endif
#endif //SPI_H