STC15W408AS串口通讯PC乱码 发送和接收的不一样 大神们给提示下要改哪里啊
使用的是内部晶振 感觉是不是内部晶振的问题
以下代码(丝毫未动):
#include <15w408as.h> //包含头文件
unsigned char date;
unsigned char recFlag; //接收数据标识,0 未接收数据 1 接收数据
void init_serial(); //声明初始化函数
void send(); //声明发送函数(MCU->PC)
void receive(); //声明接收函数(PC->MCU)
main()
{
init_serial(); //串口初始化
IE=0; //屏蔽中断
while(1)
{
receive(); //调用两个函数实现收发扫描
send();
}
}
void init_serial() //初始化串口
{ //定时器T2使用工作方式1,波特率9600bit/s
SCON=0X50;
AUXR|=0X04;
T2L=0xa0; //设置初值
T2H=0xfc;
AUXR|=0X10;
//TR1=1; //开始计时
//PCON=0x00; //SMOD=0;
//SCON=0x50;
TI=1;
EA=1;
}
void send() //把接收到的内容原封不动发送出去
{
if(TI==1) //检测输出是否READY
{
if(recFlag==1) //是否接收过数据
{
SBUF=date; //发送数据
recFlag=0;
TI=0;
}
}
}
void receive()
{
if(RI==1) //检测是否有数据接收
{
date=SBUF; //接收数据
recFlag=1; //设置接收标识符
RI=0; //清除标志位
}
}
|