自己编的一个串口程序接收到的数据不对、
要接收四个变量,从上位机,这是个变量有整数,有小数。有负数。接收到小数后,在进行运算。然后把运算的值发出去。被上位机接收。你弄了好久也不成功。。请给位看看问题在哪。该怎麽该,先拜谢。。#include <hidef.h>
#include <mc9s12dg256.h>
#pragma LINK_INFO DERIVATIVE "mc9s12dg256"
byte num;
byte rev_data[3];
//.................SCI0模块初始化....................//
void SCI0_Init(void)
{
SCI0BDL=(unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
SCI0CR1=0X00;
SCI0CR2=0X2C;
}
//..................主函数...................//
void main(void)
{
SCI0_Init();
DisableInterrupts; /*禁止中断*/
while(1)
{
static uchar k=0;
if(SCI0SR1_RDRF==1)
{
rev_data[k++]=SCI0DRL;
num= rev_data[0]+1; /*接收第一个数据并运算
while(!SCI0SR1_TDRE);
SCI0DRL=num; /*把第一个运算结果输出
num= rev_data[1]+2; /*接收第二个数据并运算
while(!SCI0SR1_TDRE);
SCI0DRL=num; /*把第二个运算结果输出
num= rev_data[2]+3; /*接收第三个数据并运算
while(!SCI0SR1_TDRE);
SCI0DRL=num; /*把第三个运算结果输出
num= rev_data[3]+4; /*接收第四个数据并运算
while(!SCI0SR1_TDRE);
SCI0DRL=num; /*接收第四个数据并运算
}
}