单片机的双串口通讯怎样能让两个串口不互相冲突

2020-11-24 16:03:25 字数 2812 阅读 1953

1楼:匿名用户

一个用t1产生波特率,一个用自带的brt发生器产生波特率;一个中断的时候立即关总中断,避免另外一个造成中断重入,中断完成后开总中断;这样就能完全避开冲突。比如stc12c5a60s2或者nxp的p89lpc952都是双串口的,我都用过。

2楼:匿名用户

两个用相同的波特率,都用brt可以,没问题的,我用115200都没事,没出现过有冲突发生,只是注意在两个串行中断中别写太长语句,尤其是发送语句绝别写在串口接收中断中。

stc12c5160s2单片机的双串口通讯怎样能让两个串口不互相冲突?求一份程序,我借鉴一下 5

3楼:匿名用户

设定一个时间变量,放在定时中断中。

例:在主程序中,当时间大于1秒时,串口一收发,大于2秒时,串口2收发。

注意波特率,1秒左右完成的话,25个字节收发 2400boadrate 是没有问题的。

4楼:匿名用户

用两个功能函数不停的切换就可以避免冲突了

求助:stc系列双串口单片机 同时使用两个串

5楼:顶起石头的小草

然后呢,你要问什么?实现什么功能?

6楼:匿名用户

你要问啥?双串口同时使用是没有问题的。

只有单串口的单片机如何实现与两个串口模块通信

7楼:做而论道

只有单串口的单片机如何实现与两个串口模块通信--可以分时工作。

--分别和两个串口外设,通信。

--但是,外部电路,需要好好设计。

8楼:匿名用户

最简单的办法就是再模拟一个串口,不改变你原来的设计思路,增加一点**而已。

9楼:匿名用户

加一个引脚,通过使能信号分别控制?我是菜鸟,别见笑哈~

stc89c52单片机怎么实现用两个串口控制两个模块?

10楼:匿名用户

stc89c52单片机的确就有一个串口,当然可以在外部加一个模拟开关来扩展两个串口,但是两个串口是分时工作的,就是不能同时收发。其实,选择stc12c5a60s2,就完全解决了这个问题吗,它就有两个独立串口,**上不比stc89c52高多少,还有stc现在推出了最新的stc15系列的单片机,都是有两个独立串口的,**更低了,还完全可以省掉外部复位电路和时钟电路的晶振,非常方便,为什么不选择这款昵?何苦还用stc89c52,还不能解决两个串口的问题,换个思路问题就全解决了。

11楼:匿名用户

89c52只有一个串口,11f系列有双串口详细可以去stc官网找资料

12楼:

可以,如果大小允许的话。。。。两个串口在程序上的区别仅仅是用的寄存器不同,修改一下就可以。。。两个单独的程序有点麻烦,因为不是独占cpu,所以需要协调,两个程序的main函数要合并,如果写的不合理可能出问题。。。

13楼:小号很好使

串口真的只有一个,就是说能用sbuf的只有一个。但是你可以用普通io口模拟串口时序来控制另外一个外围器件。

当然用一个sbuf也可以同时控制两个外围器件,也就是说在不人为模拟串口的情况下也可以控制两个外围串口器件。

具体的可以参考串口控制寄存器的第九位tb8/和rb8,这一位可以用于地址帧和数据帧的鉴定位。比如你要控制2个器件,可以先发送一个地址帧进行片选,选定你要控制的那一个器件,此时另一个器件就会处于等待状态(也即,它将不会响应接下来的所有数据帧,只有当新的地址帧到来,且判定成功以后,它才被重新激活接收数据帧,当然,此时另一个器件又会处于等待状态了)

我用的是stc12 有两个串口的单片机,不知道串口2是怎么设置的,请高手帮忙.

14楼:匿名用户

char uart2init(char s2**od,char brtx12,unsigned char reload)

else if(s2**od == 0)

else

if(brtx12 == 1)

else if(brtx12 == 0)

else

auxr |= brtr;//开启波特率发生器ie2 |= es2;// es2 = 1; //允许串口2中断

ea = 1; //开总中断

return 0;}

15楼:万能哥哥

设置 寄存器 不就ok ?

求助:51单片机如何实现两个串口分时复用的

16楼:匿名用户

是一个单片机,要接成两个串口吗?

那只好用一个模拟开关,来切换两个串口。但实际上是一个串口,需要单片机分时来使用两个串口。这需要有严格的通信协议,编写程序要按这个协议,否则,两个串口在时间上会出现冲突,或不能正常通信,或丢失数据。

stc单片机,就有这种类型的,外部引脚是两个串口,即两组rxd,txd引脚。内部还是一个uart,但两个串口的切换是在内部完成的,外部用起来就方便多了。

stc单片机还有内部有两个独立串口的,这样,用起来就省事多了,两个独立串口,互相不影响。

串口通信的问题,两个单片机之间进行串口通信,它们的时钟频率不同,在进行数据传输是怎么实现的

17楼:匿名用户

串行通讯要求的是波特率一致,两个单片机的时钟不一样,那么特特率发生器的参数就不一样,以保证波特率一样。