OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4100|回复: 8

RS485通信的方向控制IO怎么加到驱动里?

[复制链接]

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-5-5
在线时间
17 小时
发表于 2022-2-19 09:09:29 | 显示全部楼层 |阅读模式
原子的485电路直接省掉了通信方向的引脚,如果有这个使能引脚该怎么改驱动呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-5-5
在线时间
17 小时
 楼主| 发表于 2022-2-19 22:29:44 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2022-2-23 12:05:04 | 显示全部楼层
&uart4 {        pinctrl-names = "default";        pinctrl-0 = <&pinctrl_uart4>;        fsl,rs485-gpio-txen = <&gpio1 18 GPIO_ACTIVE_LOW>;        linux,rs485-enabled-at-boot-time;        status = "okay";};




#include <asm-generic/ioctls.h>



int rs485_enable(const int fd, const RS485_ENABLE_t enable)
{
        struct serial_rs485 rs485conf;
        int res;
        //read config
        res = ioctl(fd, TIOCGRS485, &rs485conf);
        if (res < 0) {
                perror("Ioctl error on getting 485 configure:");
                close(fd);
                return res;
        }

        if (enable) {   // Enable rs485 mode
                rs485conf.flags |= SER_RS485_ENABLED;
        } else {        // Disable rs485 mode
                rs485conf.flags &= ~(SER_RS485_ENABLED);
        }

        rs485conf.delay_rts_before_send = 0x00000004;

        //write config
        res = ioctl(fd, TIOCSRS485, &rs485conf);
        if (res < 0) {
                perror("Ioctl error on setting 485 configure:");
                close(fd);
        }

        return res;
}

回复 支持 反对

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-2-23 13:14:40 | 显示全部楼层
30年众生牛马,60年诸佛龙象!
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2022-8-21
在线时间
2 小时
发表于 2024-9-2 14:19:16 | 显示全部楼层
姚先起 发表于 2022-2-23 12:05
&uart4 {        pinctrl-names = "default";        pinctrl-0 = ;        fsl,rs485-gpio-txen = ;        linux,rs485-enabled-at-boo ...

老哥我试了,你这个不行呀老哥,有没有解决方案,自收发的方案被硬件否了,他说速度不够,而且不稳
回复 支持 反对

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2024-9-2 15:17:06 | 显示全部楼层
huadaxia 发表于 2024-9-2 14:19
老哥我试了,你这个不行呀老哥,有没有解决方案,自收发的方案被硬件否了,他说速度不够,而且不稳

这个就是我代码里使用的,很稳定啊,要呢就是你哪个细节不对。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2022-8-21
在线时间
2 小时
发表于 2024-9-3 11:47:58 | 显示全部楼层
姚先起 发表于 2024-9-2 15:17
这个就是我代码里使用的,很稳定啊,要呢就是你哪个细节不对。

问一下您,您的这个代码,是要在imx.c里面添加还是重新写一个驱动呢?
  1. #include <asm-generic/ioctls.h>



  2. int rs485_enable(const int fd, const RS485_ENABLE_t enable)
  3. {
  4.         struct serial_rs485 rs485conf;
  5.         int res;
  6.         //read config
  7.         res = ioctl(fd, TIOCGRS485, &rs485conf);
  8.         if (res < 0) {
  9.                 perror("Ioctl error on getting 485 configure:");
  10.                 close(fd);
  11.                 return res;
  12.         }

  13.         if (enable) {   // Enable rs485 mode
  14.                 rs485conf.flags |= SER_RS485_ENABLED;
  15.         } else {        // Disable rs485 mode
  16.                 rs485conf.flags &= ~(SER_RS485_ENABLED);
  17.         }

  18.         rs485conf.delay_rts_before_send = 0x00000004;

  19.         //write config
  20.         res = ioctl(fd, TIOCSRS485, &rs485conf);
  21.         if (res < 0) {
  22.                 perror("Ioctl error on setting 485 configure:");
  23.                 close(fd);
  24.         }

  25.         return res;
  26. }
复制代码
回复 支持 反对

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2024-9-4 08:25:55 | 显示全部楼层
huadaxia 发表于 2024-9-3 11:47
问一下您,您的这个代码,是要在imx.c里面添加还是重新写一个驱动呢?

这个是放在应用程序里面的,在程序初始化串口后,开启485使能(重点:只要一次就行。并不是发送开,接收关),然后你串口正常收发,底层驱动会帮你流控的
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2022-8-21
在线时间
2 小时
发表于 2024-9-5 09:10:32 | 显示全部楼层
姚先起 发表于 2024-9-4 08:25
这个是放在应用程序里面的,在程序初始化串口后,开启485使能(重点:只要一次就行。并不是发送开,接收 ...

谢谢您,感谢感谢,我以为是写在驱动里面的,我试一试谢谢大佬
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表