HSerGetString

Syntax:

    HSerGetString myString      ‘Get a multi char string  from USART 1
    HSerGetString myString,1    ‘Get a multi char string  from USART 1
    HSerGetString myString,2    ‘Get a multi char string  from USART 2
Variable type is string and the  routine checks for numbers,letters, and puctuation.

Command Availability:

Available on all microcontrollers with a USART or UART module.

Microchip PIC supports USART1 and 2.
Atmel AVR supports USART 1,2,3 and 4.

Enabling Constants:

To enable the use of the USART these are the enabling constants.   These constants are required.  You can change the USART_BAUD_RATE and to meet your needs.  For addition USART ports use #define USARTn_BAUD_RATE 9600 where n` is the required port number.

    'USART settings for USART1
    #define USART_BAUD_RATE 9600
    #define USART_TX_BLOCKING
    #define USART_DELAY OFF

Explanation:

This command will read a multi character string received as ascii input to the hardware serial module followed by a CR from an external serial source. It can be used only as a subroutine. Variable type is string and the routine checks for numbers,letters, and puctuation.

Example:

  'This program receives char string and CR from a PC terminal, sends back the string on the serial port, and turns Led’s on off by command

  #chip 18f26k22, 16

  'Set the pin directions
  #define USART_BAUD_RATE 9600
  #define USART_BLOCKING
  #define USART2_BAUD_RATE 9600
  #define USART2_BLOCKING

  'InitUSART
  #define SerInPort PORTc.7    'USART 1 Rx Pin
  #define SerOutPort PORTc.6    'USART 1 Tx Pin


  'Set pin directions
  Dir SerOutPort Out
  Dir SerInPort In

  Dir PORTB.6 Out        'second USART Tx Pin
  Dir PORTB.7 In        'second USART Rx Pin

  Dir PORTB.0 Out        ' LED hooked up for testing
  Dir PORTB.1 Out        ' LED hooked up for testing

  Wait 100 Ms

  ; ----- Variables
  ' All byte variables are defined upon use.
  Dim myNum as Word
  Dim MyString as String

  ; ----- Main body of program commences here.
  'Message after reset
  HSerPrint "18F26k22"
  HSerPrintCRLF

  'Main routine

  Do Forever

    HSerGetString MyString
    HSerPrint MyString
    HSerSend(13)
     If MyString = "LED1 ON" Then
       Set PORTB.0 Off
     End If
     If MyString = "LED1 OFF" Then
       Set PORTB.0 On
     End If
     If MyString = "LED2 ON" Then
       Set PORTB.1 Off
     End If
     If MyString = "LED2 OFF" Then
       Set PORTB.1 On
     End If

  Loop

See also HSerReceive and HSerGetNum