Software UART Library
The mikroBasic PRO for FT90x provides routines for implementing Software UART communication. These routines are hardware independent and can be used with any MCU.
The Software UART Library provides easy communication with other devices via the RS232 protocol.
![]() |
External dependencies of Software UART Library
The following variables must be defined in all projects using Software UART Library: | Description : | Example : |
---|---|---|
dim Soft_Uart_RX_Pin as sbit sfr external |
Data In line. | dim Soft_Uart_RX_Pin as sbit at GPIO_PIN26_Bit |
dim Soft_Uart_TX_Pin as sbit sfr external |
Data Out line. | dim Soft_Uart_TX_Pin as sbit at GPIO_PIN27_Bit |
Library Routines
Soft_UART_Init
Prototype |
sub function Soft_UART_Init(dim byref port as longword, dim baud_rate as longword, dim inverted as word) as byte |
---|---|
Description |
Configures and initializes the software UART module. Software UART routines use Delay_Cyc routine. If requested baud rate is too low then calculated parameter for calling If requested baud rate is too high then rounding error of |
Parameters |
|
Returns |
|
Requires |
Nothing. |
Example |
' Software UART module connections dim Soft_Uart_RX_Pin as sbit at GPIO_PIN26_Bit dim Soft_Uart_TX_Pin as sbit at GPIO_PIN27_Bit ' End Software UART module connections ... error = Soft_UART_Init(4800, 0) ' Initialize Soft UART at 4800 bps |
Notes |
The Software UART library implements time-based activities, so interrupts need to be disabled when using it. |
Soft_UART_Read
Prototype |
sub function Soft_UART_Read(dim byref error as byte) as byte |
---|---|
Description |
The function receives a byte via software UART. This is a blocking function call (waits for start bit). Programmer can unblock it by calling Soft_UART_Break routine. |
Parameters |
|
Returns |
Byte received via UART. |
Requires |
Software UART must be initialized before using this function. See the Soft_UART_Init routine. |
Example |
dim data_ as byte error as word ... ' wait until data is received do data_ = Soft_UART_Read(error) loop until (error = 0) |
Notes |
The Software UART library implements time-based activities, so interrupts need to be disabled when using it. |
Soft_UART_Write
Prototype |
sub procedure Soft_UART_Write(dim udata as byte) |
---|---|
Description |
This routine sends one byte via the Software UART bus. |
Parameters |
|
Returns |
Nothing. |
Requires |
Software UART must be initialized before using this function. See the Soft_UART_Init routine. Be aware that during transmission, software UART is incapable of receiving data – data transfer protocol must be set in such a way to prevent loss of information. |
Example |
dim some_byte as byte ... some_byte = $0A ' Write a byte via Soft UART Soft_UART_Write(some_byte) |
Notes |
The Software UART library implements time-based activities, so interrupts need to be disabled when using it. |
Soft_UART_Break
Prototype |
sub procedure Soft_UART_Break() |
---|---|
Description |
Soft_UART_Read is blocking routine and it can block the program flow. Calling |
Parameters |
None. |
Returns |
Nothing. |
Requires | Nothing. |
Example |
|
Notes |
The Software UART library implements time-based activities, so interrupts need to be disabled when using it. |
What do you think about this topic ? Send us feedback!