m
 
(22 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination ||  void UART_Init(uint32_t v_baudRate_u32)
+
|Defination ||  void UART_Init(uint32_t var_baudRate_u32)
 
|-
 
|-
 
| Input Arguments ||*uint32_t : Baudrate to be configured.
 
| Input Arguments ||*uint32_t : Baudrate to be configured.
Line 27: Line 27:
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination ||void UART_SetBaudRate(uint32_t v_baudRate_u32)
+
|Defination ||void UART_SetBaudRate(uint32_t var_baudRate_u32)
 
|-
 
|-
 
| Input Arguments ||*uint32_t : Baudrate to be configured.
 
| Input Arguments ||*uint32_t : Baudrate to be configured.
Line 45: Line 45:
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination ||void UART_TxChar(char v_uartData_u8)
+
|Defination ||void UART_TxChar(char var_uartData_u8)
 
|-
 
|-
 
| Input Arguments || char:Ascii value of the character to be transmitted.
 
| Input Arguments || char:Ascii value of the character to be transmitted.
Line 54: Line 54:
 
|-
 
|-
 
| Usage ||  
 
| Usage ||  
char ch='A';
+
char ch='A';<br />
UART_TxChar(ch);  //Transmits the Char stored in ch
+
UART_TxChar(ch);  //Transmits the Char stored in ch<br />
UART_TxChar('A');  //Transmits the Char 'A'
+
UART_TxChar('A');  //Transmits the Char 'A'<br />
UART_TxChar(65);  //Transmits the Char 'A'
+
UART_TxChar(65);  //Transmits the Char 'A'<br />
 
UART_TxChar(0x41); //Transmits the Char 'A'
 
UART_TxChar(0x41); //Transmits the Char 'A'
 
|}
 
|}
 
 
 
  
 
==UART_RxChar==
 
==UART_RxChar==
Line 77: Line 74:
 
|-
 
|-
 
| Usage ||  
 
| Usage ||  
char ch;
+
char ch;<br />
 
ch = UART_RxChar(); //Receives a Ascii char and copies into ch     
 
ch = UART_RxChar(); //Receives a Ascii char and copies into ch     
 
|}
 
|}
 
 
  
 
==UART_TxString==  
 
==UART_TxString==  
Line 87: Line 82:
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination || void UART_TxString(char *p_stringPointer_u8)
+
|Defination || void UART_TxString(char *ptr_stringPointer_u8)
 
|-
 
|-
 
| Input Arguments || char *:String(Address of the string) to be transmitted.
 
| Input Arguments || char *:String(Address of the string) to be transmitted.
Line 96: Line 91:
 
|-
 
|-
 
| Usage ||  
 
| Usage ||  
char myString[]={"hello, world"};
+
char myString[]={"hello, world"};<br />
UART_RxString(myString);
+
UART_RxString(myString);<br />
 
UART_RxString("\n\rgood morning");     
 
UART_RxString("\n\rgood morning");     
 
|}
 
|}
 
 
 
  
 
==UART_RxString==  
 
==UART_RxString==  
Line 108: Line 100:
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination || void UART_RxString(char *p_stringPointer_u8)
+
|Defination || void UART_RxString(char *ptr_stringPointer_u8)
 
|-
 
|-
 
| Input Arguments || char *: Address of the string/Buffer where the received data needs to be stored
 
| Input Arguments || char *: Address of the string/Buffer where the received data needs to be stored
Line 114: Line 106:
 
| Return Value||none
 
| Return Value||none
 
|-
 
|-
| Description ||<br />
+
| Description ||This function is used to receive a ASCII string through UART till the carriage_return/New_line.<br />
*This function is used to receive a ASCII string through UART till the carriage_return/New_line<br />
+
The stream of data is copied to the buffer till carriage_return/New_line is encountered.<br />
*The stream of data is copied to the buffer till carriage_return/New_line is encountered.<br />
+
Once the Carriage_return/New_Line is received the string will be null terminated.
* Once the Carriage_return/New_Line is received the string will be null terminated.
+
 
|-
 
|-
 
| Usage ||  
 
| Usage ||  
char buffer[50];
+
char buffer[50];<br />
UART_RxString(buffer);     
+
UART_RxString(buffer);    //Receives a string from UART and copies into buffer
 
|}
 
|}
  
 
+
==UART_TxNumber==
 
+
 
+
==UART_TxDecimalNumber==
+
 
{|{{Widget:LibCol}}
 
{|{{Widget:LibCol}}
 
{{#Widget:LibTable}}
 
{{#Widget:LibTable}}
 
|-
 
|-
|Defination ||void UART_TxDecimalNumber(uint32_t v_decNumber_u32, uint8_t v_numOfDigitsToTransmit_u8)  
+
|Defination || void UART_TxNumber ( NumericSystem_et e_typeOfNum_e8, uint32_t var_number_u32, uint8_t var_numOfDigitsToDisplay_u8)
 
|-
 
|-
| Input Arguments ||<br />
+
| Input Arguments ||  
*uint32_t: Number to be transmitted on UART.<br />
+
*NumericSystem_et: Specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16)
*uint8_t : Number of digits to be transmitted
+
*uint32_t: Number to be displayed on the LCD.
 +
*uint8_t : Number of digits to be displayed
 
|-
 
|-
 
| Return Value|| none
 
| Return Value|| none
 
|-
 
|-
| Description ||This function is used to transmit a max of 10digit decimal number.2nd parameter specifies the number of digits from the right side to be transmitted .
+
| Description ||This function is used to transmita max of 10digit decimal/Hex number OR specified number of bits for binary number.<br>
 
+
1st parameter specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16).<br>
The output for the input combinations is as below.
+
3rd parameter specifies the number of digits from the right side to be transmitted.<br>
*(12345,4) then 4-digits ie. 2345 will be transmitted
+
The output for the input combinations is as below<br>
*(12345,6) then 6-digits ie. 012345 will be transmitted
+
Binary:   
*(12345,C_DefaultDigitsToTransmit) then 12345 will be transmitted.
+
*(10,4) then 4-LSB will be transmitted i.e. 1010
 +
*(10,8) then 8-LSB will be transmitted i.e. 00001010
 +
*(10,2) then 2-LSB will be transmitted i.e. 10
 +
               
 +
Decimal:
 +
*(10,12345,4) then 4-digits ie. 2345 will be transmitted
 +
*(ENUM_DECIMAL,12345,6) then 6-digits ie. 012345 will be transmitted
 +
*(10,12345,C_DisplayDefaultDigits_U8) then 12345 will be transmitted.\
 +
             
 +
Hex:
 +
*(16,0x12AB,3) then 3-digits ie. 2AB will be transmitted
 +
*(ENUM_Hex,0x12AB,6) then 6-digits ie. 0012AB will be transmitted
 +
*(ENUM_Hex,0x12AB,C_DisplayDefaultDigits_U8) then 12AB will be transmitted.
 
|-
 
|-
 
| Usage ||  
 
| Usage ||  
uint32_t decNumber = 123456;
+
uint32_t decNumber = 123456;<br />
UART_TxDecimalNumber(decNumber,5); //Transmit last 5-digits of Number
+
UART_TxDecimalNumber(decNumber,5); //Transmit last 5-digits of Number<br />
 
UART_TxDecimalNumber(12345,4);    //Transmit last 4-digits of number     
 
UART_TxDecimalNumber(12345,4);    //Transmit last 4-digits of number     
 
|}
 
|}
 
 
 
 
==UART_TxHexNumber==
 
{|{{Widget:LibCol}}
 
{{#Widget:LibTable}}
 
|-
 
|Defination ||void  UART_TxHexNumber(uint32_t v_hexNumber_u32, uint8_t v_numOfDigitsToTransmit_u8)
 
|-
 
| Input Arguments || uint32_t: Hexadecimal Number to be transmitted on UART.
 
uint8_t : Number of digits to be transmitted
 
|-
 
| Return Value|| none
 
|-
 
| Description ||This function is used to transmit a max of 10digit hex number.<br />
 
2nd parameter specifies the number of digits from the right side to be transmitted .
 
The output for the input combinations is as below .
 
*(0x12AB,3) then 3-digits ie. 2AB will be transmitted
 
*(0x12AB,6) then 6-digits ie. 0012AB will be transmitted
 
*(0x12AB,C_DefaultDigitsToTransmit) then 12AB will be transmitted.
 
|-
 
| Usage ||
 
uint32_t hexNumber = 0x123456;
 
UART_TxHexNumber(hexNumber,5); //Transmit last 5-digits of hexNumber
 
UART_TxHexNumber(0xABCDEF,4); //Transmit last 4-digits of number   
 
|}
 
 
 
 
 
==UART_TxBinaryNumber==
 
{|{{Widget:LibCol}}
 
{{#Widget:LibTable}}
 
|-
 
|Defination ||void  UART_TxBinaryNumber(uint32_t v_binNumber_u32, uint8_t v_numOfBitsToTransmit_u8)
 
|-
 
| Input Arguments ||  uint32_t: Hexadecimal Number to be transmitted on UART.
 
uint8_t : Number of bits to be transmitted
 
|-
 
| Return Value|| none
 
|-
 
| Description ||This function is used to transmit the binary equivalent of the given number.<br />
 
2nd parameter specifies the number of LSB to be transmitted .
 
The output for the input combinations is as below .
 
*(10,4) then 4-LSB will be transmitted ie. 1010
 
*(10,8) then 8-LSB will be transmitted ie. 00001010
 
*(10,2) then 2-LSB will be transmitted ie. 10
 
|-
 
| Usage || 
 
uint32_t Number = 0xABCD;
 
UART_TxDecimalNumber(Number,16); //Transmit last 16-bits of Number
 
UART_TxDecimalNumber(0x1234,8); //Transmit last 8-bits of number 
 
|}
 
 
 
 
 
==UART_TxFloatNumber== 
 
{|{{Widget:LibCol}}
 
{{#Widget:LibTable}}
 
|-
 
|Defination ||void  UART_TxFloatNumber(float v_floatNumber_f32)
 
|-
 
| Input Arguments || float: float Number to be transmitted on UART.
 
|-
 
| Return Value||  none
 
|-
 
| Description ||This function is used to transmit a floating point number. It supports 6-digits of precision. <br />
 
*Note :Float will be disabled by default as it takes huge controller resources .It can be enabled by changing value of Enable_UART_TxFloatNumber to 1 in uart.h
 
 
|-
 
| Usage ||   
 
float Number = 1234.5678;
 
UART_TxFloatNumber(Number);
 
UART_TxFloatNumber(3.33333);
 
|}
 
 
 
 
  
 
==UART_Printf==
 
==UART_Printf==
Line 256: Line 177:
 
void main()
 
void main()
 
{
 
{
uint16_t decNum=1234;//16-bit
+
uint16_t decNum=1234;//16-bit<br />
uint32_t longDec=12345678;//32-bit
+
uint32_t longDec=12345678;//32-bit<br />
float floatNum=1234.5678;
+
float floatNum=1234.5678;<br />
uint16_t hexNum=0xABCD;
+
uint16_t hexNum=0xABCD;<br />
char myString[]={"hello, world};
+
char myString[]={"hello, world};<br />
 
   
 
   
UART_Printf("%d %l %f %x %b %s",decNum,longDec,floatNum,hexNum,hexNum,myString);
+
UART_Printf("%d %l %f %x %b %s",decNum,longDec,floatNum,hexNum,hexNum,myString);<br />
 
UART_Printf("D:%d,L:%l,F=%f,H:%x,Str:%s",1234,12345678,123.456,0xAB,"hello");
 
UART_Printf("D:%d,L:%l,F=%f,H:%x,Str:%s",1234,12345678,123.456,0xAB,"hello");
 
}     
 
}     
 
|}
 
|}
 
  
 
==Usage guide==
 
==Usage guide==
 +
<syntaxhighlight>
 
#include"uart.h"
 
#include"uart.h"
 
int main()
 
int main()
 
{
 
{
   char a_TxMsg_u8[]={"Good Morning"};
+
   char str_TxMsg_u8[]={"Good Morning"};
   char v_uartData_u8='A';
+
   char var_uartData_u8='A';
   uint16_t v_num_u16= 1234u;
+
   uint16_t var_num_u16= 1234u;
   char a_readString_u8[50];
+
   char str_readString_u8[50];
 
   char ch;
 
   char ch;
 
    
 
    
Line 282: Line 203:
 
   UART_TxString("\n\rProgram to illustrate the UART library usage ");
 
   UART_TxString("\n\rProgram to illustrate the UART library usage ");
 
    
 
    
   UART_TxString(a_TxMsg_u8);    /* Transmit the message stored in a string */
+
   UART_TxString(str_TxMsg_u8);    /* Transmit the message stored in a string */
 
   UART_TxString("\n\rChar:");
 
   UART_TxString("\n\rChar:");
 
   UART_TxChar('X');            /* Transmit the specified Ascii character */
 
   UART_TxChar('X');            /* Transmit the specified Ascii character */
   UART_TxChar(v_uartData_u8);    /* Transmit the char stored in a variable */
+
   UART_TxChar(var_uartData_u8);    /* Transmit the char stored in a variable */
 
    
 
    
 
   UART_TxString("\n\rDec:");
 
   UART_TxString("\n\rDec:");
Line 295: Line 216:
 
    
 
    
  
   UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",v_num_u16,v_num_u16,v_num_u16,a_TxMsg_u8);
+
   UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",var_num_u16,var_num_u16,var_num_u16,a_TxMsg_u8);
 
   UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",123u,0xABCDu,0x55u,"hello,world");
 
   UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",123u,0xABCDu,0x55u,"hello,world");
 
   
 
   
 
   UART_Printf("\n\rEnter a String: ");
 
   UART_Printf("\n\rEnter a String: ");
   UART_RxString(a_readString_u8);
+
   UART_RxString(str_readString_u8);
   UART_Printf("\n\rEntered string is: %s",a_readString_u8);
+
   UART_Printf("\n\rEntered string is: %s",str_readString_u8);
 
   
 
   
 
   do
 
   do
Line 315: Line 236:
 
   return 0;
 
   return 0;
 
}
 
}
 +
</syntaxhighlight>
 +
 +
{{DISQUS}}

Latest revision as of 18:08, 30 May 2015

UART

UART_Init

{{#Widget:LibTable}}
Defination void UART_Init(uint32_t var_baudRate_u32)
Input Arguments *uint32_t : Baudrate to be configured.
Return Value none
Description This function is used to initialize the UART at specified baud rate.
If the requested baud rate is not within the supported range then the default baud rate of 9600 is set.
Usage UART_Init(9600); //Initialize the uart module for 9600 baud rate;



UART_SetBaudRate

{{#Widget:LibTable}}
Defination void UART_SetBaudRate(uint32_t var_baudRate_u32)
Input Arguments *uint32_t : Baudrate to be configured.
Return Value none
Description This function is used to Set/Change the baudrate on the fly.
If the requested baud rate is not within the supported range then the default baud rate of 9600 is set.
Usage UART_SetBaudRate(9600); //Configures the uart module for 9600 baud rate;



UART_TxChar

{{#Widget:LibTable}}
Defination void UART_TxChar(char var_uartData_u8)
Input Arguments char:Ascii value of the character to be transmitted.
Return Value none
Description This function is used to transmit a char through UART module.
Usage

char ch='A';
UART_TxChar(ch); //Transmits the Char stored in ch
UART_TxChar('A'); //Transmits the Char 'A'
UART_TxChar(65); //Transmits the Char 'A'
UART_TxChar(0x41); //Transmits the Char 'A'

UART_RxChar

{{#Widget:LibTable}}
Defination char UART_RxChar()
Input Arguments none.
Return Value char: Ascii value of the character received
Description This function is used to receive a char from UART module. It waits till a char is received and returns its acsii value after reception.
Usage

char ch;
ch = UART_RxChar(); //Receives a Ascii char and copies into ch

UART_TxString

{{#Widget:LibTable}}
Defination void UART_TxString(char *ptr_stringPointer_u8)
Input Arguments char *:String(Address of the string) to be transmitted.
Return Value none
Description This function is used to transmit a NULL terminated string through UART.
Usage

char myString[]={"hello, world"};
UART_RxString(myString);
UART_RxString("\n\rgood morning");

UART_RxString

{{#Widget:LibTable}}
Defination void UART_RxString(char *ptr_stringPointer_u8)
Input Arguments char *: Address of the string/Buffer where the received data needs to be stored
Return Value none
Description This function is used to receive a ASCII string through UART till the carriage_return/New_line.

The stream of data is copied to the buffer till carriage_return/New_line is encountered.
Once the Carriage_return/New_Line is received the string will be null terminated.

Usage

char buffer[50];
UART_RxString(buffer); //Receives a string from UART and copies into buffer

UART_TxNumber

{{#Widget:LibTable}}
Defination void UART_TxNumber ( NumericSystem_et e_typeOfNum_e8, uint32_t var_number_u32, uint8_t var_numOfDigitsToDisplay_u8)
Input Arguments
  • NumericSystem_et: Specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16)
  • uint32_t: Number to be displayed on the LCD.
  • uint8_t : Number of digits to be displayed
Return Value none
Description This function is used to transmita max of 10digit decimal/Hex number OR specified number of bits for binary number.

1st parameter specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16).
3rd parameter specifies the number of digits from the right side to be transmitted.
The output for the input combinations is as below
Binary:

  • (10,4) then 4-LSB will be transmitted i.e. 1010
  • (10,8) then 8-LSB will be transmitted i.e. 00001010
  • (10,2) then 2-LSB will be transmitted i.e. 10

Decimal:

  • (10,12345,4) then 4-digits ie. 2345 will be transmitted
  • (ENUM_DECIMAL,12345,6) then 6-digits ie. 012345 will be transmitted
  • (10,12345,C_DisplayDefaultDigits_U8) then 12345 will be transmitted.\

Hex:

  • (16,0x12AB,3) then 3-digits ie. 2AB will be transmitted
  • (ENUM_Hex,0x12AB,6) then 6-digits ie. 0012AB will be transmitted
  • (ENUM_Hex,0x12AB,C_DisplayDefaultDigits_U8) then 12AB will be transmitted.
Usage

uint32_t decNumber = 123456;
UART_TxDecimalNumber(decNumber,5); //Transmit last 5-digits of Number
UART_TxDecimalNumber(12345,4); //Transmit last 4-digits of number

UART_Printf

{{#Widget:LibTable}}
Defination void UART_Printf(const char *argList, ...)
Input Arguments variable length arguments similar to printf
Return Value none
Description This function is similar to printf function in C. It takes the arguments with specified format and transmits accordingly .

The supported format specifiers are as below.

  • %c: character
  • %d: decimal 16-Bit number
  • %l: decimal 32-Bit number
  • %b: binary
  • %s: string
  • %f: float
  • %x: hexadecimal
Usage

void main() { uint16_t decNum=1234;//16-bit
uint32_t longDec=12345678;//32-bit
float floatNum=1234.5678;
uint16_t hexNum=0xABCD;
char myString[]={"hello, world};

UART_Printf("%d %l %f %x %b %s",decNum,longDec,floatNum,hexNum,hexNum,myString);
UART_Printf("D:%d,L:%l,F=%f,H:%x,Str:%s",1234,12345678,123.456,0xAB,"hello"); }

Usage guide

#include"uart.h"
int main()
{
  char str_TxMsg_u8[]={"Good Morning"};
  char var_uartData_u8='A';
  uint16_t var_num_u16= 1234u;
  char str_readString_u8[50];
  char ch;
 
 
  UART_Init(9600);
  UART_TxString("\n\rProgram to illustrate the UART library usage ");
 
  UART_TxString(str_TxMsg_u8);    /* Transmit the message stored in a string */
  UART_TxString("\n\rChar:");
  UART_TxChar('X');             /* Transmit the specified Ascii character */
  UART_TxChar(var_uartData_u8);    /* Transmit the char stored in a variable */
 
  UART_TxString("\n\rDec:");
  UART_TxDecimalNumber(1234,5);  /* Transmit the specified digits of a number */
  UART_TxString(" Hex:");
  UART_TxHexNumber(0xABCD,5);    /* Note here the number of digits to transmit=5 */
  UART_TxString(" Bin:");        /* The number Transmitted on UART will be as below*/
  UART_TxBinaryNumber(0xABCD,16);/* dec=01234, hex=0ABCD, bin=1010101111001101*/
 
 
  UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",var_num_u16,var_num_u16,var_num_u16,a_TxMsg_u8);
  UART_Printf("\n\rDec=%d Hex=%x Bin:%b str=%s",123u,0xABCDu,0x55u,"hello,world");
 
  UART_Printf("\n\rEnter a String: ");
  UART_RxString(str_readString_u8);
  UART_Printf("\n\rEntered string is: %s",str_readString_u8);
 
  do
  {
 	UART_Printf("\n\rEnter 'E' to exit: ");
 	ch = UART_RxChar();
 	UART_Printf("\n\rYou entered: %c",ch);
  }while((ch!='E') && (ch!='e'));
 
 
  UART_Printf("\n\rEnjoy Embedded Programming");
  while(1);
 
  return 0;
}