一个单片机串口通讯的问题,为什么老是掉数据

november 2005-06-27 11:08:17
#include <reg51.h>
#include <stdio.h>

void init_serialcomm( void )
{
SCON = 0x50 ; //方式一,八位可变,SM2在接收到有效停止位时才激活RI
TCON = 0x40; //置一,启动计数
TMOD |= 0x20 ; //定时器一,十六位
PCON |= 0x80 ; //功率加大一倍;
TH1 = 0xff ; //波特率:19200 fosc=11.0592MHz
TL1 = 0xfc;
IE |= 0x90 ; //允许串行中断
TI=1; //发送中断标志
}

void main(void)
{
unsigned char i;
unsigned char k= 0 ;
unsigned char dw[21]={0x24,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x00,0x3c,0x00,0x0d,0x0a};
for(i=0;i<18;i++)
{
dw[18]^=dw[i];
}
init_serialcomm();
for(k=0;k<21;k++)
{
putchar(dw[k]);
}
}

出现的是0x0D 0x0D,而不是我想要的0x0D 0x0A




#include <reg51.h>
#include <stdio.h>

void init_serialcomm( void )
{
SCON = 0x50 ; //方式一,八位可变,SM2在接收到有效停止位时才激活RI
TCON = 0x40; //置一,启动计数
TMOD |= 0x20 ; //定时器一,十六位
PCON |= 0x80 ; //功率加大一倍;
TH1 = 0xff ; //波特率:19200 fosc=11.0592MHz
TL1 = 0xfc;
IE |= 0x90 ; //允许串行中断
//TR1 = 1 ; // timer 1 run
TI=1; //发送中断标志
}

void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0 );
TI= 0 ;
}

//向串口发送一个字符串,strlen为该字符串长度
void send_string_com( unsigned char *str, unsigned int strlen)
{
unsigned int k= 0 ;
do
{
send_char_com(*(str + k));
k++;
}
while (k < strlen);
}


void main(void)
{
unsigned char i;
unsigned char k= 0 ;
unsigned char dw[21]={0x24,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x00,0x3c,0x00,0x0d,0x0a};
for(i=0;i<18;i++)
{
dw[18]^=dw[i];
}
init_serialcomm();
send_string_com(dw,21);
}


用这段代码出不来0x24,不知道为什么
望高手指点一二
...全文
337 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
november 2005-07-11
  • 打赏
  • 举报
回复
是我的波特率设置上的问题,多谢大家了
galle 2005-06-29
  • 打赏
  • 举报
回复
为什么每次都要初始化串口呢??
void main(void)
{
unsigned char i;
unsigned char k= 0 ;
unsigned char dw[21]={0x24,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x00,0x3c,0x00,0x0d,0x0a};
init_serialcomm();
for(i=0;i<18;i++)
{
dw[18]^=dw[i];
}
send_string_com(dw,21);
}
改一下次序试试
ldqmoon 2005-06-28
  • 打赏
  • 举报
回复
数据传输出错可能是波特率设置问题,建议先用9600的试试

keil下有个hello的例子,可以参考那个看看
november 2005-06-27
  • 打赏
  • 举报
回复
不要沉掉啊

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧