欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

单片机一个串口复用有关问题

更新时间: 2014-01-05 03:15:23 责任编辑: Author_N1

 

单片机一个串口复用问题
我用一个单片机的TXD,RXD分别接两个模块,从一个接受信息,另一个发送信息,可以分时进行,电路不冲突(单个模块只与单片机的TXD RXD中一个连接即可通信),但波特率不同,那我是不是要分两次初始化串口呢?能实现吗?还有串口中断怎么写呢,可以通过写入SBUF的信息不同来判断吗?(分开单独通信已经搞定了)
--参考方法--
“但波特率不同,那我是不是要分两次初始化串口呢”
可以 2次 初始化, 不过 开销就大 了。

如果 硬件 有 2个 串口 就好了。
--参考方法--
“什么叫开销大啊” OverHead
就是 每次 改变 波特率时 都 要 重新 初始化 一次。
“发送” 一般 不用 中断, 因为 你 知道,发 什么, 什么时间 发。
接受 中断 是要 的。

--参考方法--
根据波特率不就可以判断了吗?
假设需要从A读信息发送到B
先设置成A的波特率,进中断,读取数据,配成B的波特率,发送出去,再设置成A的波特率等待。
--参考方法--
你现在 是 “半工”状态, 不能 同时 收发 (“全工“)
--参考方法--
就我们产品进行分时复用串行口的经验看,这样不太好弄.当然,我们是分别对两个设备,和楼主的有点区别

在用到对应的设备的时候,重新配置串行口

同时把接收和发送功能互斥配置(大概就是,接收数据的时候,不允许发送,发送数据的时候不允许接收)

虽然没这么用过,不过,感觉应该可以实现
--参考方法--
引用:
Quote: 引用:

根据波特率不就可以判断了吗?
假设需要从A读信息发送到B
先设置成A的波特率,进中断,读取数据,配成B的波特率,发送出去,再设置成A的波特率等待。

用波特率判断可行吗,判断哪个参数呢?


你应该预先知道A和B的波特率,
那么你设置成A的波特率的话,B发送的信息你是收不到的。
另外根据你的描述,你只要配置成A的波特率,B只是被动接受你发送的信息,所以你可以收到A的信息重新配置波特率然后发送给B,发完后再配成A的波特率。
--参考方法--

可以实现。每次收转发或发转收时重新设置波特率。
--参考方法--
一个串口当两个不同的波特率串口用时可以的,但是,要是有两个独立的串口不就好了嘛,干嘛非要这么折磨自己呢。
--参考方法--
用IO口模拟一个TXD就是了。反正是固定波特率的。自己延时程序调下就可以了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:23
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20205/
本文WWW.DOC100.NET DOC100.NET版权所有。