STC11F32单片机11.0592M晶振,设置成115200波特率,单片机发送后电脑接收的数据怎么不对? 25
如题:用定时器1产生波特率,设置如下:TMOD|=0X20;//初始化为波特率发生器SCON=0X50;AUXR|=0X40;//定时器1运行于1T模式TH1=TL1=0...
如题:
用定时器1产生波特率,设置如下:
TMOD|=0X20; //初始化为波特率发生器
SCON= 0X50;
AUXR |=0X40; //定时器1运行于1T模式
TH1 = TL1 =0xfd; //115200 1T
TR1=1;
发送程序
/******************************************************************/
/* 发送数据到串口 */
/******************************************************************/
void Send_one_byte(uchar dat)
{
ES = 0;
TI = 0;
SBUF = dat;
while(!TI);
TI = 0;
ES = 1;
}
//主程序中发送两个数据
Send_one_byte(0x55);
Send_one_byte(0xaa);
........
但是,结果电脑上收到的数据都是00
PS:STC-ISP软件,串口助手接收的,设置也是115200波特率。但9600是可以的。
问题已解决,是232芯片的问题,换芯片就好了。 展开
用定时器1产生波特率,设置如下:
TMOD|=0X20; //初始化为波特率发生器
SCON= 0X50;
AUXR |=0X40; //定时器1运行于1T模式
TH1 = TL1 =0xfd; //115200 1T
TR1=1;
发送程序
/******************************************************************/
/* 发送数据到串口 */
/******************************************************************/
void Send_one_byte(uchar dat)
{
ES = 0;
TI = 0;
SBUF = dat;
while(!TI);
TI = 0;
ES = 1;
}
//主程序中发送两个数据
Send_one_byte(0x55);
Send_one_byte(0xaa);
........
但是,结果电脑上收到的数据都是00
PS:STC-ISP软件,串口助手接收的,设置也是115200波特率。但9600是可以的。
问题已解决,是232芯片的问题,换芯片就好了。 展开
3个回答
展开全部
很可能是硬件的问题。排除方法:
电脑的com口自发自收一下,确定电脑能使用较高的波特率。
电平转换芯片,单片机和电脑com口的通讯电平是不同的,转换芯片支持不了这么高的波特率,可以自己制作高速电平转换电路试试。
换用有屏蔽的损耗较小的通讯线材,长度尽量短些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以将波特率逐级往下降低试试,比如57600,比如28800等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询