发表于:2009/7/9 11:23:40
#0楼
各位高手你好,我要用单片机的串口发指令给MM440,用来控制变频器,通过测试,用PC机上的串口调试助手发指令给变频器,可以控制变频器,但是用单片机发同样的指令给变频器却没有反应,网上说指令的数据类型不对,我不知道怎么解决??希望哪位高手指点一下!!!
比如用PC机上的串口调试助手发指令:02 06 00 04 7E 40 00 3E可以是变频器停止,但是用单片机发就不行了?
这是一部分程序:
unsigned char n[16]={'0','2','0','6','0','0','0','4','7','E','4','0','0','0','3','E'};
void SciTx(unsigned char text){
while (!(SCI0SR1&0x80)); /* wait for output buffer empty */
SCI0DRH=0;
SCI0DRL=text;
}
void main()
{
int i;
DDRB=0xFF;
PORTB=0xAA;
SET_PLL();
SciInit();
for(i=0;i<16;i++)
{
SciTx(n[i]); //向串口发送HELLO WORLD
}
delay (2000000);
}
比如用PC机上的串口调试助手发指令:02 06 00 04 7E 40 00 3E可以是变频器停止,但是用单片机发就不行了?
这是一部分程序:
unsigned char n[16]={'0','2','0','6','0','0','0','4','7','E','4','0','0','0','3','E'};
void SciTx(unsigned char text){
while (!(SCI0SR1&0x80)); /* wait for output buffer empty */
SCI0DRH=0;
SCI0DRL=text;
}
void main()
{
int i;
DDRB=0xFF;
PORTB=0xAA;
SET_PLL();
SciInit();
for(i=0;i<16;i++)
{
SciTx(n[i]); //向串口发送HELLO WORLD
}
delay (2000000);
}