1. 主板型号:AIO-3399J
2. 芯片型号:RK3399
3. 操作系统版本:Android 7.1
4. Linux版本:v4.4.103
RPLIDAR A3M1 激光雷达通讯接口采用 3.3V 电平的串口。UART ttyS配置文件适配的波特率:256000bps。本文根据驱动来修改非标准波特率,然后通过APP读写雷达设备串口数据,修改串口读写、串口安全权限的问题。
5. RK3399采用的是8250通用驱动8250_dw.c:
static void dw8250_set_termios(struct uart_port *p, struct ktermios *termios,struct ktermios *old)
{
。。。
diff = rate * 20 / 1000;
if ((rate_temp < rate) && ((rate - rate_temp) > diff))
。。。
}
串口设置的是3M的波特率,从log可以看出,串口走的是clk_uart4_pmu 整数分频,由676M PLL分出来接近48M的的clk(48M根据上面的公式,是分出 3M波特率的最小时钟)。这虽然有误差,但在允许范围内,这个误差的大小驱动里设定为正负2%。
串口以256000波特率发送的数据,根据波特率大小来设置时钟