STC12C5A60S2单片机双串口,为什么串口1用独立波特率发生器时还要使能定时器(0/1)并允许定时器中断?

作者&投稿:海终 (若有异议请与网页底部的电邮联系)
毕业设计中使用STC12C5A60S2单片机。做双串口通信时候。串口1使用定时器1 串口2使用独立波特率发生器~

如果你的数据是时好时坏的丢失,我建议你考虑清楚2个定时器之间中断优先级的问题,有个能串口1把串口2正在处理的数据优先屏蔽了

如果你的数据都是非正常的,我建议你做个协议进行数据校对,不过我觉得优先级的可能性比较大

应该是可以的,我最近在做个项目也是用的这个单片机,下面是一些初始化:/***********************************************************
;函数名: void Uart1_Init(void)
;功能: 串口初始化
;是否测试通过:
************************************************************/
void Uart1_Init(void)//9600bps@11.0592MHz
{
PCON &= 0x7f;//波特率不倍速
SCON = 0x50;//8位数据,可变波特率
//AUXR =0X00;
TL1 = 0xFD;//设定定时初值
TH1 = 0xFD;//设定定时器重装值
ET1 = 0;//禁止定时器1中断
TR1 = 1;//启动定时器1
}
/***********************************************************
;函数名: void Uart2_Init(void)
;功能: 串口初始化
;是否测试通过:
************************************************************/
void Uart2_Init(void)//9600bps@11.0592MHz
{
S2CON=0X50;
AUXR1=0X00; //TXD2-P1.3 RXD2-P1.2
AUXR=0X10;//允许独立波特率
BRT=0xfd;//独立波特率
}
/***********************************************************
;函数名: Time0_Set()
;功能: 定时器0 初始化 作PWM频率输出
;是否测试通过:测试通过
************************************************************/
void Time0_Set()
{
TMOD= 0x22;
TH0= 0xe8; // 对应hz输出
TL0= 0xe8;
TR0=1;
}
你也可以去这个网址找你要的http://www.stcmcu.com/
希望对你有帮助

串口1波特率可使用定时器1或者独立波特率发生器,使用定时器1时做波特率发生时,你就不能用定时器1了,使用独立波特率发生器时,定时器1得到释放,你可以随时使用;此时你使能定时器(0/1)并允许定时器中断只是为了释放定时器,当然你用不到定时器中断,也可以关掉,对波特率无影响的

问STC


芯片解密—STC15系列芯片解密,深圳橙盒科技可以做的型号:
STC12C系列芯片解密 STC12C5201AD、STC12C5202AD、STC12C5203AD、STC12C5204AD、STC12C5205AD、STC12C5206AD、STC12C5604AD、STC12C5608AD、、STC12C5616AD、STC12C5620AD、STC12C5624AD、STC12C5628AD、STC12C5630AD、STC12C5A08AD、STC12C5A08S2、STC12C5A16AD、STC12C5A16S2、STC12C5A32...

芯片解密高手,兹重金求STC12LE5A16S2芯片解密高手,谢谢!
STC12C系列 STC12C5201AD、STC12C5202AD、STC12C5203AD、STC12C5204AD、STC12C5205AD、STC12C5206AD、STC12C5604AD、STC12C5608AD、、STC12C5616AD、STC12C5620AD、STC12C5624AD、STC12C5628AD、STC12C5630AD、STC12C5A08AD、STC12C5A08S2、STC12C5A16AD、STC12C5A16S2、STC12C5A32AD、STC...

IAP15W4K58S4芯片解密哪里可以做呢?
STC12C系列芯片解密 STC12C5201AD、STC12C5202AD、STC12C5203AD、STC12C5204AD、STC12C5205AD、STC12C5206AD、STC12C5604AD、STC12C5608AD、、STC12C5616AD、STC12C5620AD、STC12C5624AD、STC12C5628AD、STC12C5630AD、STC12C5A08AD、STC12C5A08S2、STC12C5A16AD、STC12C5A16S2、STC12C5A32...

可爱女孩网名起名
11、﹊┲﹊萝莉捕猎人12、桃扇骨13、不明白小姐14、月亮邮递员15、年的矿泉水不好ci16、第五个tc之子丶吴奶包17、丨棒棒糖丶18、丶小盆友づ19、假的太真i20、抱抱我21、Onlyou22、_&靑鲑潴潴"_&靑鲑苯苯"23、号飙船24、╭→寂小寞℃25、长安一夜尽落花26、绿萝裙底27、群猪看夕阳28、疑心病29、ぃ...

昌邑区19576061156: STC12C5A60S2如何同时使用两个串口啊 -
木滕异丁: STC官网 有例程的 这个是真正的 双串口 可以同时使用的

昌邑区19576061156: STC12c5a60s2的双串口能不能同时使用的,有什么需要注意的吗 -
木滕异丁: 可以同时使用.跟普通的单个串口的使用一样.

昌邑区19576061156: stc12c5a单片机两个串口是同时可以通信,还是每一个时刻只有一个可以通信,怎么初始化两个串口.c语言的 -
木滕异丁: 完全可以 同时使用 两个串口,立波特率相同 没有问题. 两个 串口 都 开中断. 用过 STC12C5A60S2系列 和 STC15F2K60S2系列 都可以. 看看数据手册 就可以,上面有例程的.

昌邑区19576061156: 关于单片机双串口使用 单片机型号:stc12c5a60s2 晶振:12MHz 波特率:9600 用 -
木滕异丁: 这款单片机,你看下应该是有个独立波特率发生器的,或者你使用定时器16位自动重装,1T 模式产生波特率,我一直都是用的12m晶振的,在Stc-isp烧写软件里面,有个波特率计算器,很方便

昌邑区19576061156: STC12C5A60S2双串口和内部AD能同时开启吗 -
木滕异丁: 你好,很高兴为你解答 这个是可以同时开启的,STC官网 有例程的 这个是真正的 双串口 可以同时使用的 希望我的回答对你有所帮助 如有其他问题,可以继续追问,您的采纳是我前进的动力!

昌邑区19576061156: STC12C5A60S2系列双串口单片机串口转发问题 -
木滕异丁: 不会 一般串口的工作速率和单片机的速率相差很远 再一个,按正常程序设计.必须等发送标志结束再送SBUF

昌邑区19576061156: STC12C5A60S2单片机实现两路测速和串口通讯,求定时器和计数器分配 -
木滕异丁: 用T0,来定时100ms,然后用外中断来计数,不就可以了.

昌邑区19576061156: 求各位谁有STC12C5A60S2单片机第二串口的程序 -
木滕异丁: 串口2的初始化程序,我是用STC的“波特率计算工具”生成的:void UartInit(void) //4800bps@11.0592MHz { AUXR &= 0xf7; //波特率不倍速 S2CON = 0x50; //8位数据,可变波特率 BRT = 0xB8; //设定独立波特率发生器重装值 AUXR |= 0x04...

昌邑区19576061156: STC12C5A60S2双串口单片机的串口通信方式问题 -
木滕异丁: 在同一个程序里面,可以串口1使用中断方式、串口2使用查询方式.当然,串口2也可以使用中断方式,并且推荐这样做.中断的开启和关闭应该怎样具体操作?为什么关闭中断?设置好串口(不管1、2),打开中断,就不需要关闭中断了,除非特殊需要.是不是串口1收发完成时关总中断?同上,为什么老要关中断你?串口2就可以使用查询方式正常收发了,然后串口1需要通信时再打开总中断?你自己不觉得这样安排很别扭吗?串口2任何时候都可以使用查询方式正常收发(包括中断方式),跟串口1无关.

昌邑区19576061156: STC12C5A60S2单片机双串口,为什么串口1用独立波特率发生器时还要使能定时器(0/1)并允许定时器中断? -
木滕异丁: 串口1波特率可使用定时器1或者独立波特率发生器,使用定时器1时做波特率发生时,你就不能用定时器1了,使用独立波特率发生器时,定时器1得到释放,你可以随时使用;此时你使能定时器(0/1)并允许定时器中断只是为了释放定时器,当然你用不到定时器中断,也可以关掉,对波特率无影响的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网