void main()
{
init_serialcom(); //步进电机不能有这个函数,这是一个初始化串口的函数,
ATE0(); //步进电机也不能有这个函数,这是个向串口发送AT指令的函数。 为什么去掉这前两个函数,步进电机就能转,加了它就不能转了?
while(1)
{
setmotor(); //启动步进电机函数
}
}
下面是两个函数的定义:
void init_serialcom( void )
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
//UART为模式1,8位数据,允许接收
TMOD |= 0x21 ; //TMOD: timer 1, mode 2, 8-bit reload
//定时器1为模式2,8位自动重装
PCON |= 0x00 ; //SMOD=1;
TH1 = 0xFD ; //Baud:9600 fosc="11".0592MHz
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TI=1;
}
void ATE0()
{
uchar i;
for(i=0;i<sizeof(TC_ATE0)-1;i++)
{send_uart(TC_ATE0);}
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=RST;
}