OpenHarmony开发者论坛
标题:
RS485在OpenHarmony设备上的是适配
[打印本页]
作者:
诚迈-小唐僧
时间:
2024-8-27 20:45
标题:
RS485在OpenHarmony设备上的是适配
[md]### 1、485简介
对于linux下的485使用,其实就是linux下的串口使用。但是485有一个控制信号,在485等待接收的时候,控制信号需要时低电平,在发送的时候需要为高电平。所以对于linux下485驱动,最主要的任务就是完的成对控制信号电平的操作。以下操作完成485接口自收发功能,不需要应用控制信号进行收发。
### 2、dts配置:
```c
rs485 {
uart0_tx_en_gpio: uart0-tx-en-gpio {
rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
uart3_tx_en_gpio: uart3-tx-en-gpio {
rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
};
uart4_tx_en_gpio: uart4-tx-en-gpio {
rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
uart5_tx_en_gpio: uart5-tx-en-gpio {
rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
&uart0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart0_xfer &uart0_tx_en_gpio>;
rs485-txen-gpio = <&gpio2 RK_PD0 GPIO_ACTIVE_HIGH>;
};
&uart3 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart3m1_xfer &uart3_tx_en_gpio>;
rs485-txen-gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
};
&uart4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart4m1_xfer &uart4_tx_en_gpio>;
rs485-txen-gpio = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
};
&uart5 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart5m1_xfer &uart5_tx_en_gpio>;
rs485-txen-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
};
```
3、驱动更换:






config中关闭原配置
```c
.config中更改:
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_8250_DW=m
CONFIG_SERIAL_OF_PLATFORM=m
```
使用KO加载实现自动收发功能。
```在init.cfg中添加一下命令(按照指定顺序加载)。
在init.cfg中添加一下命令(按照指定顺序加载)。
"insmod /etc/serial_core.ko",
"insmod /etc/8250_base.ko",
"insmod /etc/8250.ko",
"insmod /etc/8250_of.ko",
"insmod /etc/8250_dw.ko",
```
4、如果不想用KO加载,那么按照以下方法进行驱动修改。
[Linux RS485串口驱动修改方法--基于Rockchip及Amlogic验证\_linux rs485驱动-CSDN博客](
https://blog.csdn.net/Wahuqeirdace/article/details/133852832
)
5、测试:(默认串口是9600 8N1)
使用485转USB工具或者485装以太网工具,将A-A,B-B后再电脑端使用串口工具进行收发即可。

[/md]
作者:
fengyunrenwu
时间:
2024-8-28 18:17
有些图片看不见噢~~
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5