咋么从SBUF寄存器中读取这帧数据。最好给个通过串口通信控制步进电机转速转向的c51编程参考。大致相近就行

p1.0和1.1控制驱动器脉冲和转向.发送2帧数据给单片机。一帧控制转速一帧控制转向。发送一个帧数据给单片机后。我咋么从SBUF寄存器中读取这帧数据。sbuf是一个字节一字节读的还是一位一位?求一个通过串口通信控制步进电机转速转向的c51编程。大致相近就行。

#include <reg51.h>
unsigned char dat[2]; //接收数据存放处(根据你数据帧自己调整,这里假设2字节)

void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}

void main(void)
{
InitUART();
//add your code here,about control
}

void UARTInterrupt(void) interrupt 4
{
unsigned char i;
if(RI)
{
RI = 0;
dat[i]=SBUF; //从串口读取数据
i++;
if(i==2) i=0;
}

}

SBUF是一个字节一个字节读的
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-04
发送是按字节的,接受是按位

...最好给个通过串口通信控制步进电机转速转向的c51编程参考。大致相近...
dat[i]=SBUF; \/\/从串口读取数据 i++;if(i==2) i=0;} } SBUF是一个字节一个字节读的

相似回答
大家正在搜