linux与window的\r与\n
应用程序
void niuniu(void)
{
char buf[16];
char *p[6];
int i; led_init();
uart_init(); while(1)
{
puts("\r\nuart> ");
gets(buf);
// 去掉\r\n
buf[strlen(buf)-2] = '\0';
// 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 != '\0')
{
putc(*s++);
}
} char getc(void)
{
while(!(UART0.UTRSTAT0&(0x1<<0)))
{
} return UART0.URXH0;
} void gets(char *s)
{
// kermit按下enter时,发送\r
do
{
*s = getc();
// kermit不会显示它发送的数据
putc(*s);
}while(*s++ != '\r'); // kermit软件\r回车\n换行
Linux下虽然回车只有一个\n,但是\n起到了两个效果。
_______________________________________________________________________________
*s++ = '\n';
// puts需要\0
*s = '\0';
}
#endif
//////////////////////////////
Linux下
\r代表回车(回到行首)
\n 代表换行(下一行,当前位置)
puts("\r\n uart> ");//直接调用puts函数,后边自动有一个\0
char buf[16]; gets(buf); 当你在kermit下主动输入一个ledon 1时,会自动被这个函数获取,但是获取的是ledon \r
(\r是你在kermit环境下,自己按回车加上去的)
然后gets函数会自动在后边加一个\n\0.
//////////// Puts(“>>>>>\r1234”);
Puts(“<<<<<<\r\n5678”);
Puts(“+++++++\ntttt”);
结果
1234<<<<<<
5678++++++++++++
tttt
//////////////////////////
Windos 环境下,写一个yan.txt
当输入一个1,回车,
当输入一个2,回车,
当输入一个3的时候,保存退出。
然后放到linux里边,命令od -c yan.txt
结果
1 \r \n 2 \r \n 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 \n 2 \n 3 \n
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 \n 2 \n 3 \n \n
linux与window的\r与\n的更多相关文章
- Samba实现Linux与Window文件的传输
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...
- weblogic在linux和window下的安装
weblogic在linux和window下的安装 weblogic下载地址 Windows server2008 一直下一步没什么坑 centos6.5 使用rpm安装jdk8 JDK下载 安装jd ...
- Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况
这是一个工具类,获取的内容: CPU使用率:得到的是当前CPU的使用情况,这是算出的是两次500毫秒时间差的CPU使用率 内存使用率:[1 - 剩余的物理内存/(总的物理内存+虚拟内存) ] * 1 ...
- Linux on window初体验
参照来源: https://www.cnblogs.com/enet01/p/7458767.html 1:liunx on window 的配置不多说(百度网上很多)启动开发这模式,在应用和程序中勾 ...
- JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构
一.简介 JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构 二.依赖 <!-- https://mvnrepository.com/artifact/org.fus ...
- (转)关于linux挂载window下共享文件
关于linux挂载window下共享文件的方法: ①事先建立linux下文件夹,例如“ /mnt/linux-folder”②用mount命令挂载 mount -o username=windo ...
- linux 文件权限除了r、w、x外还有s、t、i、a权限说明
linux 文件权限除了r.w.x外还有s.t.i.a权限 s: 文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否 ...
- linux与window文件传输(使用ssh+putty)
linux与window文件传输(使用ssh+putty) https://blog.csdn.net/Imagine_Dragon/article/details/78303241
- (原创)Linux跟Window共享文件的两个简单方法
第一中种方法: Linux中启动shell,输入如下命令: mount -t cifs -o username="my-pc-name",password="my-pas ...
随机推荐
- ReSharper Ultimate 2017 下载地址及破解方法
https://download.jetbrains.8686c.com/resharper/JetBrains.ReSharperUltimate.2017.1.2.exe 安装完成后,打开vs ...
- 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题
相信很多同学在从eclipse 转 AS 都会遇到这个问题,因为方便所以共用了一个sdk 目录,但是AS 会主动更新sdk,然而手贱的跟新了一夜,再打开eclipse的时候瞬间呆滞了,这一夜发生什么了 ...
- 17.出现fatal signal(SIGSEGV),code 1,fault addr 0x0 in tid 29931的问题
原因是: 在onCreate方法里面调一些东西的时候,有时候系统相关的东西还没有初始化完,你的代码就已经执行了,会出现一些问题 解决方法: 增加延时1s /一.第一步初始化,此处用的是demo的ap ...
- 理解java动态代理
java动态代理是java语言的一项高级特性.在平时的项目开发中,可能很难遇到动态代理的案例.但是动态代理在很多框架中起着不可替代的作用,例如Spring的AOP.今天我们就聊一聊java动态代理的实 ...
- 设置npm淘宝代理
来源:https://cnodejs.org/topic/4f9904f9407edba21468f31e 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在 ...
- HMM、MEMM、CRF模型比较和标注偏置问题(Label Bias Problem)
本文转自:http://www.cnblogs.com/syx-1987/p/4077325.html 路径1-1-1-1的概率:0.4*0.45*0.5=0.09 路径2-2-2-2的概率:0.01 ...
- 用python 实现生成双色球小程序
生成双色球小程序: #输入n,随机产生n条双色球号码,插入n条数据库 #表结构: seq CREATE TABLE `seq` ( `id` int(11) NOT NULL AUTO_INCREME ...
- log4j的配置和使用
日志记录 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器 ...
- webpack.dev.conf.js详解
转载自:https://www.cnblogs.com/ye-hcj/p/7087205.html webpack.dev.conf.js详解 //引入当前目录下的utils.js文件模块var ut ...
- docker issue-Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
Here is my docker version when i run docker version : Client: Version: 1.8.1 API version: 1.20 Go ve ...