UART串口及Linux实现

UARTUniversal Asynchronous Receiver Transmitter864SoCUART

 

UART

UARTFIFO


  • 5/6/7/8

  • 1/1.5/2


  • FIFO

 

UART




TXD

RXD

CTSN
UARTUARTUART
RTSN
CTSN

 

1 UART

 

2 UART

 

UART

UART

 

3 UART

 

线1

0

5678LSB

使1()()

1/1.5/2Linux1.5

UARTUART9600115200460800

 

LinuxUART

Linux UARTUART/dev/ttyS*备(ttySUARTLinuxttyserial coreserial corettytty driveruart

  • struct uart_driverstruct uart_portstruct uart_opsuart

  •  uart_register_driveruart_add_one_port 

 

4 UART

 

struct uart_opsUART

 

UARTuart_ops


tx_empty
TX FIFO10
stop_tx

start_tx

stop_rx

startup
UART
shutdown
UART
set_termios
UART

 

struct uart_driverUARTstruct uart_portUARTstruct uart_ops

 

UART

UARTplatform_driver

 

uart_opsuart_opsuart_port

 

UARTprobeuart_portserial core

 

Linux

Linuxminicom, cutecom

/dev/ttyS0

stty -F /dev/ttyS0

stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb

115200 8 1 


cat /dev/ttyS0

echo "test data" > /dev/ttyS0

 

//open/read/writeLinuxAPI

struct termios options;//tcgetattr(fd, &options);//cfsetispeed(&options, B115200);cfsetospeed(&options, B115200);//8options.c_cflag &= ~CSIZE;options.c_cflag |= CS8;//options.c_cflag &= ~PARENB;//1options.c_cflag &= ~CSTOPB;//tcsetattr(fd, TCANOW, &options);

 

UART

UARTttyttyUARTUART

UARTUARTinputinputUARTUARTUARTttyserial coreUART

线I2CI2C线i2c_driveri2c_transferI2CSPIspi_driverSPII2C/SPI便

UART4.14seriottyttyttyUART

serio线UARTSerial IOseriostruct serio_busserio线struct serioseriostruct serio_drvierserio

drivers/input/serio/*drivers/input/touchscreen/touchit213.c

4.14serail dev bus

serdev_device_driver_register(struct serdev_device_driver *, struct module *);

使

drivers/bluetooth/hci_bcm.c

 ------ END ------

作者:bigfish99

博客:https://www.cnblogs.com/bigfish0506/

公众号:大鱼嵌入式

posted @ 2022-05-08 09:49  bigfish99  阅读(2549)  评论(0编辑  收藏  举报