charles

charles

0个粉丝

10

问答

0

专栏

0

资料

charles  发布于  2015-07-14 13:19:12
采纳率 0%
10个问答
4198

3520D 的485怎么用

 
485对应的驱动是ttyAMA1吗?可以给个通讯例子吗?
我来回答
回答5个
时间排序
认可量排序

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-07-14 16:10:12
认可0
同问,SDK无调用函数么

kelisi

0个粉丝

8

问答

0

专栏

8

资料

kelisi 2015-07-14 16:57:17
认可0
和232没区别,就是收发是半双工的。用一个IO控制方向。

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-07-17 21:48:45
认可0
资料太少了,哪个IO口都不知道,有没有办法知道是哪个驱动,可以直接调用呢,标准接口应该做好了驱动接口函数,给客户直接调用就好了

falloutmx

1个粉丝

15

问答

0

专栏

0

资料

falloutmx 2015-07-20 10:16:56
认可0
都是标准串口,驱动接口都是现成的,主要是控制RTS/CTS,这个可能要自己改下

hik

0个粉丝

3

问答

0

专栏

0

资料

hik 2016-01-14 18:38:32
认可0
http://blog.chinaunix.net/uid-12461657-id-3341237.html
作者:        attorney [ 2012-07-31 17:13 ]
文章标题 :        修改2410的linux串口驱动,使其支持RS485
2410自带有三个串口,但mizi linux中自带的驱动均为RS232的,因为485是半双工的,比232多了一个方向控制信号,所以linux的自带驱动并不适合485,需要进行一定的修改,步骤如下。

1. 首先硬件方面肯定要改动,假设我们要改的串口为串口2,电路原理图如下:

有图可知,485与232相比多了一个方向控制信号nRTS0,当其为低电平时,MAX485处于接收状态,反正为发送状态。因此我们在修改驱动时主要就是要让串口2发送时,nRTS0必须为低电平,接收时必须为高电平。

2. 我们要修改的linux串口驱动主要为driver/serial/serial_s3c2410.c文件. 涉及到的函数主要有s3c2410uart_startup,s3c2410uart_start_tx和s3c2410uart_stop_tx,他们的作用分别为启动串口,开始串口接收,停止串口接收。

3.首先修改s3c2410uart_startup函数,在其初始化的最后即return 0之前添加如下代码:

if( port!=&s3c2410_ports[2] ) { //如果初始化的是串口2

GPHCON = (GPHCON&0xfffffff3)+0x04; //将GPH1,即nRTS0设为输出功能

GPHDAT &= 0xfffd; //将nRTS0设为低电平,使串口启动时处于接收数据状态。

}

4. 修改s3c2410uart_start_tx,在enable_irq语句前添加如下代码:

if( port!=&s3c2410_ports[2] ) { //如果启动发送的是的是串口2
GPHCON = (GPHCON&0xfffffff3)+0x04; //将GPH1,即nRTS0设为输出功能
GPHDAT = 0x02; //将nRTS0设为高电平,使串口进入发送数据状态。
}

5.修改s3c2410uart_stop_tx,在disable_irq语句前添加如下代码:
if( port!=&s3c2410_ports[2] ) { //如果停止发送的是的是串口2

while( !(UART_UTRSTAT(port)&0x04) ) ; //等待串口发送完成 ,这句千万不能少

GPHCON = (GPHCON&0xfffffff3)+0x04; //将GPH1,即nRTS0设为输出功能

GPHDAT = 0x02; //将nRTS0设为低电平,使串口重新进入接收数据状态。

}

其中特别需要注意的是第二行的while语句千万不能少,否则可能导致发送的数据丢失,因为在串口没发送完毕时就将nRTS0设为低电平会使MAX485芯片退出发送状态,导致发送数据的丢失。

至此驱动修改完成,重新编译内核即可。其中用于控制485发送接收状态的信号可以是任意的空闲CPU引脚,修改原理与使用nRTS0是相同的。

6. 关于linux串口编程的文章推荐下面两篇,注意485编程时务必将串口设为RAW MODE.
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区