应用程序 void niuniu(void) { char buf[16]; char *p[6]; int i; led_init(); uart_init(); while(1) { puts(" uart> "); gets(buf); // 去掉 buf[strlen(buf)-2] = ' '; // strtok函数会使用全局变量 p[0] = strtok(buf, " "); for(i=1; p[i-1]!=NULL; i++) { p[i] = strtok(NULL, " "); } if(strcmp(p[0], "ledon") == 0) { if(strcmp(p[1], "all") == 0) { for(i=1; i<5; i++) { led_on(i); } } else { for(i=1; p[i]!=NULL; i++) { led_on(*p[i]-48); } } } if(strcmp(p[0], "ledoff") == 0) { if(strcmp(p[1], "all") == 0) { for(i=1; i<5; i++) { led_off(i); } } else { for(i=1; p[i]!=NULL; i++) { led_off(*p[i]-48); } } } } } #endif ///////////驱动程序 #if UART==1 void uart_init(void) { // 选择GPH2和GPH3的功能为UART GPH.GPHCON = ((~(0xf<<4))&GPH.GPHCON)|(0xa<<4); // 配置UART0为,8位数据,无校验,1位停止位,正常模式 UART0.ULCON0 = 0x3; // 配置UART0为,中断或者轮巡方式 UART0.UCON0 = 0x5; // 配置UART0为,波特率9600 // 12M/(9600*16)-1 UART0.UBRDIV0 = 0x4d; } void putc(char c) { // 数据放入发送保持寄存器,然后在波特率协调下,发送移位器把保持寄存器中的数据一位一位的发送出去 UART0.UTXH0 = c; // 等待发送保持寄存器中的数据发送完毕 while(!(UART0.UTRSTAT0&(0x1<<1))) { } } void puts(char *s) { while(*s != ' ') { putc(*s++); } } char getc(void) { while(!(UART0.UTRSTAT0&(0x1<<0))) { } return UART0.URXH0; } void gets(char *s) { // kermit按下enter时,发送 do { *s = getc(); // kermit不会显示它发送的数据 putc(*s); }while(*s++ != ' '); // kermit软件 回车 换行 Linux下虽然回车只有一个 ,但是 起到了两个效果。 _______________________________________________________________________________ *s++ = ' '; // puts需要 *s = ' '; } #endif ////////////////////////////// Linux下 代表回车(回到行首) 代表换行(下一行,当前位置) puts(" uart> ");//直接调用puts函数,后边自动有一个 char buf[16]; gets(buf); 当你在kermit下主动输入一个ledon 1时,会自动被这个函数获取,但是获取的是ledon ( 是你在kermit环境下,自己按回车加上去的) 然后gets函数会自动在后边加一个 . //////////// Puts(“>>>>> 1234”); Puts(“<<<<<< 5678”); Puts(“+++++++ tttt”); 结果 1234<<<<<< 5678++++++++++++ tttt ////////////////////////// Windos 环境下,写一个yan.txt 当输入一个1,回车, 当输入一个2,回车, 当输入一个3的时候,保存退出。 然后放到linux里边,命令od -c yan.txt 结果 1 2 3 命令 ls -l |grep yan.txt -rwxr-xr-x 1 lh lh 7 2014-09-18 09:01 yan.txt 只有七个字节。 Linux环境下,写一个piao 当输入一个1,回车, 当输入一个2,回车, 当输入一个3的时候,保存退出。(这里确实没有输入回车) 命令 ls -l |grep piao 结果 -rw-r--r-- 1 lh lh 6 2014-09-18 09:07 piao 命令 od -c piao 结果 1 2 3 Linux环境下,写一个piao2 当输入一个1,回车, 当输入一个2,回车, 当输入一个3的时候,出车,保存退出。 命令 ls -l |grep piao2 结果 -rw-r--r-- 1 lh lh 7 2014-09-18 09:07 piao 命令 od -c piao2 结果 1 2 3