12M晶振的波特率不要超过2400,最高4800但要设置加倍,否则误差太大不能正常通讯。
- void UartInit(void) //2400bps@12.000MHz
- {
- PCON= 0x00; //波特率不倍速
- SCON= 0x50; //8位数据,可变波特率
- TMOD= 0x20; //设定定时器1为8位自动重装方式
- TL1 = 0xF3; //设定定时初值
- TH1 = 0xF3; //设定定时器重装值
- ET1 = 0; //禁止定时器1中断
- TR1 = 1; //启动定时器1
- EA = 1; //使能总中断
- ES = 1; //使能串口中断
- }
- void UartInit(void) //4800bps@12.000MHz
- {
- PCON= 0x80; //使能波特率倍速位SMOD
- SCON= 0x50; //8位数据,可变波特率
- TMOD= 0x20; //设定定时器1为8位自动重装方式
- TL1 = 0xF3; //设定定时初值
- TH1 = 0xF3; //设定定时器重装值
- TR1 = 1; //启动定时器1
- ET1 = 0; //禁止定时器1中断
- EA = 1; //使能总中断
- ES = 1; //使能串口中断
- }
复制代码 |