为了在较高波特率的情况下使用485功能,所以需要配置串口的RTS,在哪里可以配置这个引脚呢?
离线
dts
sun8i-v3s.dtsi:
sun8i-v3s-licheepi-zero.dts:
是这两个文件吗?
能说得具体一点吗?
谢谢
离线
先改 sun8i-v3s.dtsi
uart0_pins_a: uart0@0 { pins = "PB8", "PB9"; function = "uart0"; }; uart1_pins_a: uart1@0 { pins = "PE21", "PE22"; function = "uart1"; }; uart2_pins_a: uart2@0 { pins = "PB0", "PB1"; function = "uart2"; };
先要改引脚配置, 看能否起作用.
如果不行, 还得改dts:
&uart2 { pinctrl-0 = <&uart2_pins_a>; pinctrl-names = "default"; status = "okay"; };
再不行只能继续改应用程序。
目前我三个串口都可以正常工作,只是我需要用用其中的一个作为485通讯,波特率要比较高,所以必须配一个io控制发送方向才能实现高速,我目前不知道改怎么配置这个io
离线
如果单纯使用485功能,不需要单独io控制发送方向,使用硬件自动切换功能电路就可以了, 操作485同操作串口一样,
需要注意发送接收时序,使用485,就是相当于串口单双工模式
如果不单独用一个io控制发送方向实现不了高速通讯,只能在比较低的波特率下工作,我现在卡在不知道改怎么配置这个io
离线
对啊, 在上面把 CTS/RTS加到 pin ctrls 里面去先。
uart2_pins_a: uart2@0 {
pins = "PB0", "PB1";
function = "uart2";
};
&uart2 {
pinctrl-0 = <&uart2_pins_a>;
pinctrl-names = "default";
status = "okay";
};
是这两个地方吗,我是想用uart2的RTS PB2引脚,具体怎么加呢?
离线
pins = "PB0", "PB1", "PB2", "PB3";
好的 我先试试
离线
好的 我先试试
增加了之后PB2引脚在打开关闭串口2的时候会出现高低电平的变化,但是进行数据发送的时候始终是低电平,发送不成功
离线
看下是不是应用程序还要配置 ttyS2 才能使能RTS/CTS
应用程序具体是指哪个部分呢?能说得详细一点吗?
离线