Firefly开源社区

标题: UART波特率修改问题 [打印本页]

作者: tigerlh    时间: 2020-9-3 16:08
标题: UART波特率修改问题
本帖最后由 tigerlh 于 2020-9-4 10:31 编辑

日志输出的串口ttyS0波特率参照文档修改成了115200;
但是,其它的串口试了多种方法都无法修改波特率,使用过的方法有:
1. stty -F /dev/ttyS3 speed 115200
2. dtsi文件修改:
        uart3: serial@ff0d0000 {
                compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
                reg = <0x0 0xff0d0000 0x0 0x100>;
                interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
                clock-names = "baudclk", "apb_pclk";
                baudrate = <115200>;
                speed = <115200>;
                 = <115200>;
                reg-shift = <2>;
                reg-io-width = <4>;
                dmas = <&dmac0 10>, <&dmac0 11>;
                dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&uart3_xfer>;
                status = "okay";
        };
之后用stty -F /dev/ttyS3查看波特率依然为9600:
speed 9600 baud; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>;
start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>;
werase = <undef>; lnext = <undef>; discard = <undef>; min = 0; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

请指教
作者: tigerlh    时间: 2020-9-4 12:01
补充下, 如下将9600改为115200后只有Uart0有效,其它端口依然是9600
int uart_register_driver(struct uart_driver *drv)
{
        struct tty_driver *normal;
        int i, retval;

        BUG_ON(drv->state);

        /*
         * Maybe we should be using a slab cache for this, especially if
         * we have a large number of ports to handle.
         */
        drv->state = kzalloc(sizeof(struct uart_state) * drv->nr, GFP_KERNEL);
        if (!drv->state)
                goto out;

        normal = alloc_tty_driver(drv->nr);
        if (!normal)
                goto out_kfree;

        drv->tty_driver = normal;

        normal->driver_name        = drv->driver_name;
        normal->name                = drv->dev_name;
        normal->major                = drv->major;
        normal->minor_start        = drv->minor;
        normal->type                = TTY_DRIVER_TYPE_SERIAL;
        normal->subtype                = SERIAL_TYPE_NORMAL;
        normal->init_termios        = tty_std_termios;
        normal->init_termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL;
        normal->init_termios.c_ispeed = normal->init_termios.c_ospeed = 115200;

作者: zyk    时间: 2020-9-6 09:49
多试几遍或者等会再查看

ttys3.png (21.83 KB, 下载次数: 693)

ttys3.png





欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1