应用程序
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