用9600波特率时初值: TMOD = 0x20;
PCON = 0x00;
T2CON=0x34; // 0b 00110101: T2作为串口0的16位串行波特率发生器,自动重装
TH2=0xff;TL2=0xDC; //baud rate initial value(baud rate 9600 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0xDC;
TR2=1; //start T/C2 ,serial port--receive mode
WDCON=0x00; //SMOD_1=0 (Baud rate 9600 bps)
SCON1 = 0x50;
ES1 = 1;
EA=1;
用2400波特率时初值: TH2=0xff;TL2=0x70; //baud rate initial value(baud rate 2400 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0x70;
用串口精灵查看,没有反应,可我换成定时器1就行,而我要用双串口,双频率,定时器2必须用.
请用过定时器2的朋友给看一下我的两个初值设的是否正确.如何做才能让定时器2的波特率好用.非常感谢!!!
急盼回复!
6 个解决方案
#1
你的双串口怎么用的,T1做UART0的定时器,T2做UART1的定时器;还是T2也做UART0的定时器,如果是后者,你的SCON1 = 0x50,要改成SCON = 0x50;
#2
t1做uart0,t2做uart1,t1的初始化没贴出来,但程序里已写了.可是T2好象不起作用
#3
在自动重装模式下,可以不用配置TH2=0xff和TL2=0xDC,只要配置RCAP2H=0xff;
RCAP2L=0xDC
RCAP2L=0xDC
#4
PCON = 0x00;
T2CON=0x34; // 0b 00110101: T2作为串口0的16位串行波特率发生器,自动重装
TH2=0xff;TL2=0xDC; //baud rate initial value(baud rate 9600 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0xDC;
TR2=1; //start T/C2 ,serial port--receive mode
WDCON=0x00; //SMOD_1=0 (Baud rate 9600 bps)
SCON = 0x50;
ES1 = 1;
EA=1;
T2做UART0的波特率发生器.串口就是不好使,请高手帮忙分析一下原因
T2CON=0x34; // 0b 00110101: T2作为串口0的16位串行波特率发生器,自动重装
TH2=0xff;TL2=0xDC; //baud rate initial value(baud rate 9600 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0xDC;
TR2=1; //start T/C2 ,serial port--receive mode
WDCON=0x00; //SMOD_1=0 (Baud rate 9600 bps)
SCON = 0x50;
ES1 = 1;
EA=1;
T2做UART0的波特率发生器.串口就是不好使,请高手帮忙分析一下原因
#5
双串口只用过p89c669,和这个好像不一样
#6
很好用,谢谢。。。。。。。。
#1
你的双串口怎么用的,T1做UART0的定时器,T2做UART1的定时器;还是T2也做UART0的定时器,如果是后者,你的SCON1 = 0x50,要改成SCON = 0x50;
#2
t1做uart0,t2做uart1,t1的初始化没贴出来,但程序里已写了.可是T2好象不起作用
#3
在自动重装模式下,可以不用配置TH2=0xff和TL2=0xDC,只要配置RCAP2H=0xff;
RCAP2L=0xDC
RCAP2L=0xDC
#4
PCON = 0x00;
T2CON=0x34; // 0b 00110101: T2作为串口0的16位串行波特率发生器,自动重装
TH2=0xff;TL2=0xDC; //baud rate initial value(baud rate 9600 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0xDC;
TR2=1; //start T/C2 ,serial port--receive mode
WDCON=0x00; //SMOD_1=0 (Baud rate 9600 bps)
SCON = 0x50;
ES1 = 1;
EA=1;
T2做UART0的波特率发生器.串口就是不好使,请高手帮忙分析一下原因
T2CON=0x34; // 0b 00110101: T2作为串口0的16位串行波特率发生器,自动重装
TH2=0xff;TL2=0xDC; //baud rate initial value(baud rate 9600 for 11.0592M晶振)
RCAP2H=0xff;
RCAP2L=0xDC;
TR2=1; //start T/C2 ,serial port--receive mode
WDCON=0x00; //SMOD_1=0 (Baud rate 9600 bps)
SCON = 0x50;
ES1 = 1;
EA=1;
T2做UART0的波特率发生器.串口就是不好使,请高手帮忙分析一下原因
#5
双串口只用过p89c669,和这个好像不一样
#6
很好用,谢谢。。。。。。。。