วันอาทิตย์ที่ 5 กันยายน พ.ศ. 2564

โปรแกรม set baudrate ให้ TTYS0 สำหรับ embeded-devices ที่ไม่มี stty, screen

 

เป็น code แบบง่ายๆ ได้มาจาก stackoverflow


#include <stdio.h>

#include <fcntl.h>

//#include <asm/termbits.h>

#include <termios.h>

int main() {


        struct termios ttycfg;

        int            fd;


        printf("Simple terminal TTYS0 baudrate change to 115200\n");

        fd = open ("/dev/ttyS0", O_RDWR | O_NOCTTY);

        if (fd < 0) {

                printf("Error opening TTY /dev/ttyS0 \n");

                return -1;

        }


        if (tcgetattr (fd, &ttycfg) < 0) {

                printf("Error from tcgetattr\n");

                return -1;

        }



        cfsetspeed (&ttycfg, B115200);


        if (tcsetattr(fd, TCSANOW, &ttycfg) != 0) {

                printf("Error from tcsetattr\n");

                return -1;

        }


        printf("Success set baud\n");

        return 0;

}


ผม cross-compile จากคอม x86 ไปเป็นโปรแกรมของ arm โดยใช้คำสั่ง

/home/sun89/cross/OpenWrt-Toolchain-kirkwood-for-arm_xscale-gcc-4.8-linaro_uClibc-0.9.33.2_eabi/toolchain-arm_xscale_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/bin/arm-openwrt-linux-uclibcgnueabi-g++ setbaud.c -o setbaud -O0 -Wall

ไม่มีความคิดเห็น:

แสดงความคิดเห็น