代码如下: 我用ADS里点调试 他就从 myUart_SendByte 先开始执行了 也就是说 把哪个函数放在前面他就先执行哪个~~ 才不管 应该从MAIN 开始执行呢 怎么回事呢?
#include "2410addr.h"
void myUart_SendByte(char ch) {
if(ch=='\n') { while(!(rUTRSTAT0 & 0x2));//µÈ´ý£¬Ö±µ½·¢ËÍ»º³åÇøΪ¿Õ //Delay(10); //³¬¼¶ÖжϵÄÏìÓ¦ËٶȽÏÂý WrUTXH0('\r');//·¢Ëͻسµ·û } while(!(rUTRSTAT0 & 0x2)); //µÈ´ý£¬Ö±µ½·¢ËÍ»º³åÇøΪ¿Õ //Delay(10); WrUTXH0(ch);//·¢ËÍ×Ö·û }
void myUart_Send (char *str) { while (*str) { myUart_SendByte(*str++); }
}
int Main() {
rGPHCON = 0xa0; //GPH2,GPH3 ÉèÖÃ³É TXD0,RXD0 rGPHUP =0x0c; //GPH2,GPH3 ÉÏÀµç×èʹÄÜ rULCON0 = 0x03; //8N1(8¸öÊý¾Ý룬ÎÞЧÑé룬1¸öֹͣλ) rUCON0 = 0x05; //²éѯģʽ rUFCON0 = 0x0; //²»Ê¹ÓÃFIFO rUMCON0 = 0x0; //²»Ê¹ÓÃÁ÷¿ØÖÆ rUBRDIV0 = 26; //²¨ÌØÂÊΪ115200
while(1) { while( ! (rUTRSTAT0 & 0x2) ); myUart_Send("my OK\n"); } } |