blob: 54f3498bcb00661987c43e48862b38cbfc91fed3 [file] [log] [blame]
Richard Barryb6df57c2006-05-02 09:39:15 +00001/*
Richard Barrye262d952010-02-25 13:41:09 +00002 FreeRTOS V6.0.3 - Copyright (C) 2010 Real Time Engineers Ltd.
Richard Barryb6df57c2006-05-02 09:39:15 +00003
Richard Barry26bf0da2009-10-13 11:05:41 +00004 ***************************************************************************
5 * *
6 * If you are: *
7 * *
8 * + New to FreeRTOS, *
9 * + Wanting to learn FreeRTOS or multitasking in general quickly *
10 * + Looking for basic training, *
11 * + Wanting to improve your FreeRTOS skills and productivity *
12 * *
13 * then take a look at the FreeRTOS eBook *
14 * *
15 * "Using the FreeRTOS Real Time Kernel - a Practical Guide" *
16 * http://www.FreeRTOS.org/Documentation *
17 * *
18 * A pdf reference manual is also available. Both are usually delivered *
19 * to your inbox within 20 minutes to two hours when purchased between 8am *
20 * and 8pm GMT (although please allow up to 24 hours in case of *
21 * exceptional circumstances). Thank you for your support! *
22 * *
23 ***************************************************************************
24
Richard Barry64c701a2009-10-05 10:23:06 +000025 This file is part of the FreeRTOS distribution.
Richard Barryb6df57c2006-05-02 09:39:15 +000026
Richard Barry26bf0da2009-10-13 11:05:41 +000027 FreeRTOS is free software; you can redistribute it and/or modify it under
Richard Barry64c701a2009-10-05 10:23:06 +000028 the terms of the GNU General Public License (version 2) as published by the
Richard Barry26bf0da2009-10-13 11:05:41 +000029 Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
30 ***NOTE*** The exception to the GPL is included to allow you to distribute
31 a combined work that includes FreeRTOS without being obliged to provide the
Richard Barry64c701a2009-10-05 10:23:06 +000032 source code for proprietary components outside of the FreeRTOS kernel.
Richard Barry26bf0da2009-10-13 11:05:41 +000033 FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
Richard Barry64c701a2009-10-05 10:23:06 +000034 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
35 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
Richard Barry26bf0da2009-10-13 11:05:41 +000036 more details. You should have received a copy of the GNU General Public
37 License and the FreeRTOS license exception along with FreeRTOS; if not it
38 can be viewed here: http://www.freertos.org/a00114.html and also obtained
39 by writing to Richard Barry, contact details for whom are available on the
40 FreeRTOS WEB site.
Richard Barry2f40ad72009-03-14 19:20:12 +000041
Richard Barry64c701a2009-10-05 10:23:06 +000042 1 tab == 4 spaces!
Richard Barry0a6d59a2007-04-01 20:47:49 +000043
Richard Barry64c701a2009-10-05 10:23:06 +000044 http://www.FreeRTOS.org - Documentation, latest information, license and
45 contact details.
Richard Barryc86dcf72008-02-03 19:45:58 +000046
Richard Barry64c701a2009-10-05 10:23:06 +000047 http://www.SafeRTOS.com - A version that is certified for use in safety
48 critical systems.
Richard Barryc86dcf72008-02-03 19:45:58 +000049
Richard Barry64c701a2009-10-05 10:23:06 +000050 http://www.OpenRTOS.com - Commercial support, development, porting,
51 licensing and training services.
Richard Barryb6df57c2006-05-02 09:39:15 +000052*/
53
54#ifndef SERIAL_COMMS_H
55#define SERIAL_COMMS_H
56
57typedef void * xComPortHandle;
58
59typedef enum
60{
61 serCOM1,
62 serCOM2,
63 serCOM3,
64 serCOM4,
65 serCOM5,
66 serCOM6,
67 serCOM7,
68 serCOM8
69} eCOMPort;
70
71typedef enum
72{
73 serNO_PARITY,
74 serODD_PARITY,
75 serEVEN_PARITY,
76 serMARK_PARITY,
77 serSPACE_PARITY
78} eParity;
79
80typedef enum
81{
82 serSTOP_1,
83 serSTOP_2
84} eStopBits;
85
86typedef enum
87{
88 serBITS_5,
89 serBITS_6,
90 serBITS_7,
91 serBITS_8
92} eDataBits;
93
94typedef enum
95{
96 ser50,
97 ser75,
98 ser110,
99 ser134,
100 ser150,
101 ser200,
102 ser300,
103 ser600,
104 ser1200,
105 ser1800,
106 ser2400,
107 ser4800,
108 ser9600,
109 ser19200,
110 ser38400,
111 ser57600,
112 ser115200
113} eBaud;
114
Richard Barry64c701a2009-10-05 10:23:06 +0000115xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength );
Richard Barryb6df57c2006-05-02 09:39:15 +0000116xComPortHandle xSerialPortInit( eCOMPort ePort, eBaud eWantedBaud, eParity eWantedParity, eDataBits eWantedDataBits, eStopBits eWantedStopBits, unsigned portBASE_TYPE uxBufferLength );
Richard Barry64c701a2009-10-05 10:23:06 +0000117void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength );
118signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime );
119signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime );
Richard Barryb6df57c2006-05-02 09:39:15 +0000120portBASE_TYPE xSerialWaitForSemaphore( xComPortHandle xPort );
121void vSerialClose( xComPortHandle xPort );
122
123#endif
124