wwf0123

wwf0123

0个粉丝

3

问答

0

专栏

0

资料

wwf0123  发布于  2014-08-25 17:05:44
采纳率 0%
3个问答
6764

求 3518C 的485通信程序

 
RT ,谁有 3518C 的485通信程序例程  
我来回答
回答23个
时间排序
认可量排序

david

41个粉丝

368

问答

253

专栏

229

资料

david 2014-08-26 08:50:17
认可0
就是操作串口的程序,485在底层只是有个方向控制。

wwf0123

0个粉丝

3

问答

0

专栏

0

资料

wwf0123 2014-08-26 21:24:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=7862&ptid=3735]david 发表于 2014-8-26 08:50[/url]
就是操作串口的程序,485在底层只是有个方向控制。[/quote]

485不是有连个控制脚  使能接收还是发送的吗?  直接操作串口的话,如何控制 那个方向呢? 我这边要实现双向通信的

kgui

0个粉丝

13

问答

0

专栏

4

资料

kgui 2014-08-27 16:48:48
认可0
发送的时候 拉下方向角.发送完毕再拉到接收状态.

wwf0123

0个粉丝

3

问答

0

专栏

0

资料

wwf0123 2014-08-27 23:38:29
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=7873&ptid=3735]kgui 发表于 2014-8-27 16:48[/url]
发送的时候 拉下方向角.发送完毕再拉到接收状态.[/quote]

那就是说 还要额外 编写 控制某IO管脚的电平?

lingxiao911

0个粉丝

10

问答

0

专栏

0

资料

lingxiao911 2014-12-15 14:57:12
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=7862&ptid=3735]david 发表于 2014-8-26 08:50[/url]
就是操作串口的程序,485在底层只是有个方向控制。[/quote]

david,请教一下如何在程序中进行485的方向控制,我现在只能收或者发

david

41个粉丝

368

问答

253

专栏

229

资料

david 2014-12-15 15:06:07
认可0
本帖最后由 david 于 2014-12-15 15:13 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=10261&ptid=3735]lingxiao911 发表于 2014-12-15 14:57[/url]
david,请教一下如何在程序中进行485的方向控制,我现在只能收或者发[/quote]

驱动中的话,就是在发送的时候把电平拉成发送状态,发送完毕,或者超时再拉回接收状态。
485 平时处于接收状态。

说白了就是个I/O 你控制它拉高拉低。

如下图:


RE 和 DE 是控制接收和发送的。


RE为 低则 芯片是接收状态, DE 高  为发送。

设计的时候RE和DE接在一起,然后接海思 CPU的IO, IO拉高 芯片处在发送状态,芯片拉低 处在接收状态。

lingxiao911

0个粉丝

10

问答

0

专栏

0

资料

lingxiao911 2014-12-15 16:29:51
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10263&ptid=3735]david 发表于 2014-12-15 15:06[/url]
驱动中的话,就是在发送的时候把电平拉成发送状态,发送完毕,或者超时再拉回接收状态。
485 平时处于 ...[/quote]

david,你好,谢谢你的回复。
RS485的方向控制是连接在海思的UART1_RTSN, 这个GPIO是复用功能的,我的主要问题是怎么在软件中控制这个管脚拉高或拉低

david

41个粉丝

368

问答

253

专栏

229

资料

david 2014-12-15 16:57:46
认可0
本帖最后由 david 于 2014-12-15 16:59 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=10267&ptid=3735]lingxiao911 发表于 2014-12-15 16:29[/url]
david,你好,谢谢你的回复。
RS485的方向控制是连接在海思的UART1_RTSN, 这个GPIO是复用功能的,我的主 ...[/quote]

驱动在发送是 置高,完了置低。应用中和操作232没多大区别。如果在应用中的话,要做进程间通信,比如

SetPort_H() 拉高 ,进入发送
SendStr() 发送数据。
WaitSendOK()  or WaitTimeout() ,这里就要等你底层驱动,确定发送完了。然后你才能拉低。所以放在驱动里做比较好。
SetPort_L() 拉低,进入接收。

接收肯定是开个线程处理的

david

41个粉丝

368

问答

253

专栏

229

资料

david 2014-12-15 16:58:41
认可0
一般建议把这个在驱动里面做好。 232和485通用,只是多了个方向引脚而已。

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-07-16 17:29:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10270&ptid=3735]david 发表于 2014-12-15 16:57[/url]
驱动在发送是 置高,完了置低。应用中和操作232没多大区别。如果在应用中的话,要做进程间通信,比如
...[/quote]

SetPort_H() 拉高 ,进入发送
SendStr() 发送数据。
WaitSendOK()  or WaitTimeout() ,这里就要等你底层驱动,确定发送完了。然后你才能拉低。所以放在驱动里做比较好。
SetPort_L() 拉低,进入接收。

这些函数从哪里来的,怎么找呢?我用的3520,SDK里面好像没有说明呢

ymir

2个粉丝

23

问答

0

专栏

8

资料

ymir 2015-07-16 19:15:14
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18169&ptid=3735]shangeyao 发表于 2015-7-16 17:29[/url]
SetPort_H() 拉高 ,进入发送
SendStr() 发送数据。
WaitSendOK()  or WaitTimeout() ,这里就要等你底 ...[/quote]

难道不是自己写?哈哈。。可以参考mpp/exdrv/gpioi2c/驱动的写法,虽然我也没写过、、、

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-07-17 21:46:27
认可0
资料太少了,连管脚都不知道是哪一个,怎么写呀,这些标准接口板子应该做好了驱动,给客户调用就好了

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2015-07-20 09:08:19
认可0
今天上班没查到以前的图纸,倒是看到雄迈用RTS做控制信号的图纸,因此如果要使用上述方案,请先做实验确认
如果用485,应该设置RTS/CTS硬件流控就可以了,这个设置好,硬件发送数据时会自己控制RTS信号的
设置串口属性有RTS CTS,设好就行了。就是要先看好串口支不支持RTS CTS。
没有必要自己操心了

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-08-06 14:07:39
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18254&ptid=3735]wen_jian_1973 发表于 2015-7-19 20:17[/url]
大家想一想,当没有发送方时,会接收到什么,就是高电平,也就是说,高电平我们不需要发送,我们只需要发送 ...[/quote]

请问wen_jian_1973,
     您实现了485通信了吗?HI3520或者其他海思板子的SDK是否已经加载了485驱动呢?这样只要写应用程序调用就好了。如果没有,您能否共享一下呢?发我QQ邮箱124521263,谢谢

shangeyao

0个粉丝

4

问答

0

专栏

0

资料

shangeyao 2015-08-06 14:08:28
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10267&ptid=3735]lingxiao911 发表于 2014-12-15 16:29[/url]
david,你好,谢谢你的回复。
RS485的方向控制是连接在海思的UART1_RTSN, 这个GPIO是复用功能的,我的主 ...[/quote]

请问lingxiao911,
     您实现了485通信了吗?HI3520或者其他海思板子的SDK是否已经加载了485驱动呢?这样只要写应用程序调用就好了。如果没有,您能否共享一下呢?发我QQ邮箱124521263,谢谢

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2015-08-06 15:10:15
认可0
就是串行通讯,没什么485驱动之说

fobyellow

0个粉丝

6

问答

0

专栏

0

资料

fobyellow 2016-12-06 11:10:21
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10263&ptid=3735]david 发表于 2014-12-15 15:06[/url]
驱动中的话,就是在发送的时候把电平拉成发送状态,发送完毕,或者超时再拉回接收状态。
485 平时处于 ...[/quote]

请教下问题,我们使用UART1做485的半双工接口,收发都没有问题,但是在发送的时候,无法判断是否已经发送完成,我们现在的处理办法是发送后延时一段时间后切换到接收状态,会遇到外设响应太快总线发生冲突的问题,求解决思路,谢谢!

flynnjiang

0个粉丝

14

问答

0

专栏

0

资料

flynnjiang 2016-12-06 12:33:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10270&ptid=3735]david 发表于 2014-12-15 16:57[/url]
驱动在发送是 置高,完了置低。应用中和操作232没多大区别。如果在应用中的话,要做进程间通信,比如
...[/quote]

david, 请教下,如果我暂时只用到单向接收的话,可不可以直接用himm提前把GPIO配死呢(/RE配0,DE配1),一定要在驱动里面做吗?

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2015-07-19 20:15:34
认可0
其实只要rx和tx就行了,这个是我在雄迈板子上学到的

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2015-07-19 20:17:50
认可0
大家想一想,当没有发送方时,会接收到什么,就是高电平,也就是说,高电平我们不需要发送,我们只需要发送低电平就行了
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区