*****************************************************************
注:文章版权、论点归创视微-王建忠所有,转载请注明
*****************************************************************
画了一个给智能家居的用tvbox的板子,用到串口数传。所以需要配置串口。
rk3128上有3组串口。
uart2用于debug。
uart1用于蓝牙
uart0,给外部串口数据传输用。有点少了。不过毕竟3128是tvbox版本的芯片,价格便宜总不能要求和3288一样多。
废话少说,开始正题。
瑞芯微肯定已经把串口驱动都集成进去了。具体的串口流程我就不讲了,不懂的自己搜索linux串口开发。我这里就直接讲uart0如何配置就好了。
打开3128/kernel/arch/arm/boot/dts/rk312x.dtsi
找到
uart0: serial@20060000 { compatible = "rockchip,serial"; reg = <0x20060000 0x100>; interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; clock-frequency = <24000000>; clocks = <&clk_uart0>, <&clk_gates8 0>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma 2>, <&pdma 3>; #dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; status = "disabled"; };
然后编译kernel。
由于rk3128是不开放root。所以,要再权限文档里,加上chmod 777 /dev/ttyS0
然后在windows电脑上,用串口调试助手在测试:
发送数据
echo csw uart0 test... > /dev/ttyS0(在adb shell窗口)
这时候,串口调试助手应该接收“csw uart0 test...”
接收数据cat /dev/ttyS0(在adb shell窗口)
用串口调试助手发送数据。
这时候,执行adb shell的命令窗口会打印数据。