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; }
|