C Exmaple

You can write the Serial port as the follow demo, the linux inode for the CORE9G25 board is as follow:

Serial Port Linux Inode
Debug serial /dev/ttyS0
USART0 /dev/ttyS1
USART1 /dev/ttyS2
USART2 /dev/ttyS3
USART3 /dev/ttyS4
UART0 /dev/ttyS5
UART1 /dev/ttyS6

For the Serial port pin define details, you can see the Pin out page

For the C demo, please see the follow word, you can find it at hte CD://linux/example/serial/comtest.c,

#include "stdio.h"     
#include "string.h"    
#include "unistd.h"    
#include "fcntl.h"     
#include "errno.h"     
#include "sys/types.h"
#include "sys/stat.h"
#include "stdlib.h"
#include "stdarg.h"
#include "termios.h"
int main(void) {
    char txBuffer[10];
    char rxBuffer[10];
    int fd;
    struct termios tty_attributes;
    if ((fd = open("/dev/ttyS1",O_RDWR|O_NOCTTY|O_NONBLOCK))<0) {
        fprintf (stderr,"Open error on %s\n", strerror(errno));
    } else {
        // c_cflag
        // Enable receiver
        tty_attributes.c_cflag |= CREAD;        
        // 8 data bit
        tty_attributes.c_cflag |= CS8;          
        // c_iflag
        // Ignore framing errors and parity errors. 
        tty_attributes.c_iflag |= IGNPAR;       
        // c_lflag
        // DISABLE canonical mode.
        // Disables the special characters EOF, EOL, EOL2, 
        // ERASE, KILL, LNEXT, REPRINT, STATUS, and WERASE, and buffers by lines.
        // DISABLE this: Echo input characters.
        tty_attributes.c_lflag &= ~(ICANON);     
        tty_attributes.c_lflag &= ~(ECHO);      
        // DISABLE this: If ICANON is also set, the ERASE character erases the preceding input  
        // character, and WERASE erases the preceding word.
        tty_attributes.c_lflag &= ~(ECHOE);     
        // DISABLE this: When any of the characters INTR, QUIT, SUSP, or DSUSP are received, generate the corresponding signal. 
        tty_attributes.c_lflag &= ~(ISIG);      
        // Minimum number of characters for non-canonical read.
        // Timeout in deciseconds for non-canonical read.
        // Set the baud rate
        tcsetattr(fd, TCSANOW, &tty_attributes);
        // Read a char
        if (read(fd,&rxBuffer,1)==1) {
    return EXIT_SUCCESS;


Market Mail : market@armdevs.com
Support Mail: support@armdevs.com Sales Phone: +86-755-29638421

CoreWind Online Chat>
Work time: 09:00-18:00
Copyright @ 2014 to 2020 - CoreWind Tech.