Difference between revisions of "ARDUINO 328 Functions Serial Link"

From ROBOTC API Guide
Jump to: navigation, search
 
Line 3: Line 3:
 
<br />
 
<br />
  
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.
+
The 328P-Based Arduino has 1 serial ports. This serial port is typically reserved for use for downloading programs and using the ROBOTC debugger. Users can change the serial port to have control over the RX and TX lines, but doing so will render the ROBOTC debugger useless. Users may also experience an issue when trying to download new code after running a program that modifies the Serial Port for non-system use - We are currently working on this issue, but the temporary work around is to download the ROBOTC firmware again to restore normal functionality.
  
[[File:SerialPortsMega.png]]
+
[[File:SerialPortsUno.png]]
  
 
{{tl|1|1}}
 
{{tl|1|1}}

Latest revision as of 21:16, 11 May 2012

ARDUINOFunctions and Variables → 328 Serial Link


The 328P-Based Arduino has 1 serial ports. This serial port is typically reserved for use for downloading programs and using the ROBOTC debugger. Users can change the serial port to have control over the RX and TX lines, but doing so will render the ROBOTC debugger useless. Users may also experience an issue when trying to download new code after running a program that modifies the Serial Port for non-system use - We are currently working on this issue, but the temporary work around is to download the ROBOTC firmware again to restore normal functionality.

SerialPortsUno.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.


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);