问题原因已经找出来了,谢谢大家类! 我差点被雷倒啊,我用的单片机根本没有定时器2哇。故软件模拟可以,烧写到片上就不行了。 血的教训啊,现在研究它的PCA的定时器去了,只能用那个定时器了。这个项目至少要3个定时器,来实现上位机对一个云台的控制。再次感谢21IC的网友:quakegod ,一语雷倒我啊!我可几天对它没辙了。。。。。。 问题:下载到单片机(STC12C4052AD),开串口调试助手(波特率57600),接受不收到任何东西. 因为项目已经占用了T0 T1,故必须用T2了。 求各位不吝赐教。 谢谢了
下面的程序是打个比方的,根本收不到任何东西。
#include <STC12C2052AD.H> #define uchar unsigned char #define uint unsigned int void delay(uint x) //延时x=1为1ms { uint y,z; for(y=112;y>0;y--) for(z=x;z>0;z--); }
void send_char(uchar w) //串口发送一个字符 { SBUF = w; while(TI == 0); TI = 0; } void main(void)
{ SCON = 0x50; // SM0 SM1 SM2 REN TB8 RB8 TI RI:9 bit RCAP2H = 0xff; //波特率 57600 RCAP2L = 0xfa; TH2 = 0xff; TL2 = 0xfa; PCON = 0x00; // baut rate, 80h:double; 00h: normal T2CON = 0x34; // t2 做波特率发生器 57600 ES = 1; // 串口中断允许 1-enable // PS = 0; // 串口中断优先级 1-高,0-低 EA = 1; //总中断开关 while(1) { send_char(0x88); delay(10); }
} |