ARDUINO MEGA Functions Serial Link

From ROBOTC API Guide
Revision as of 19:57, 10 May 2012 by Bfeher (Talk | contribs)

Jump to: navigation, search
ARDUINOFunctions and Variables → ARDUINO MEGA Functions Serial Link


The Arduino MEGA has 4 user serial ports - 1 reversed for the system and 3 user controllable serial ports. These serial ports can be configured in code or via the Motors and Sensor Setup window. The serial ports are buffered - a 70 byte receive buffer and a 40 byte transmit buffer.

SerialPortsMega.png

Color Key
Function:
Variable:


getChar

short getChar(const TUARTs nPort)
(short) Function will retrieve the next character from the buffer that was sent to port 'nPort'.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs


getChar(uartOne);  // retrieve the next char from UART Port 'uartOne'


sendChar

void sendChar(const TUARTs nPort, short nChar)
(void) Function will send the next character to port 'nPort'.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
nChar A char to send to 'nPort'. (Can be a short or a char) short


sendChar(uartOne, 'B');  // send the next char from UART Port 'uartOne'


setBaudRate

void setBaudRate(const TUARTs nPort, TBaudRate nBaudRate)
(void) Function will set the Baud Rate for port 'nPort'.

Acceptable Baud Rates: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 200000, 230400 and 250000.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
nBaudRate The baud rate to use TBaudRate


setBaudRate(uartOne, baudRate9600);  // retrieve the next char from UART Port 'uartOne'


configureSerialPort

void configureSerialPort(const TUARTs nPort, TSerialPortMode nMode)
(void) This function will manually configure the serial port for a specific mode (system, user, Xbee, VEX LCD, etc). You can also set this same functionality using the "Motors and Sensor Setup" window.

typedef enum TSerialPortMode { uartSystemCommPort = 1, // Standard ROBOTC IDE System Messaging Port uartUserControl = 2, // Fully user controlled. uartVEXLCD = 3, // VEX 2x15 LCD. Manages LCD updates in background. uartXBeeZigBee = 4, // UART used for XBee ZigBee networking uartXBeeWiFi = 5, // UART used for XBee WiFi networking uartCMUCAM = 6, // Legacy CMU Cam (Rev.1) support uartSerialGPS = 7, // Connected to a serial GPS } TSerialPortMode;


Parameter Explanation Data Type
nPort A sensor port or name TUARTs
TSerialPortMode The type of the serial device attached to this pin. TSerialPortMode


configureSerialPort(UART1, uartUserControl);  //Configures UART1 as a User Control Serial Port


bXmitComplete

bool bXmitComplete(const TUARTs nPort)
(bool) Function will return if the transmit (Xmit) buffer is empty.


Parameter Explanation Data Type
nPort A sensor port or name TUARTs


  sendChar(UART1, 'H');      //Send a character
  if(!bXmitComplete(UART0))  //Wait until character has been transmitted
    wait1Msec(1);