📄 serial.c
字号:
#include "ioLib.h"
#define BUFFSIZE 100
void test_write(void)
{
int serialFd;
serialFd = open("/tyCo/0",O_RDWR,0); /*以读写方式打开串口1,得到相应的文件描述符SerialFd*/
write(serialFd,"Hello,World!\n",13); /*向串口写入数据"Hello,World!"*/
close(serialFd); /*关闭串口*/
}
void test_read(void)
{
int serialFd;
int n;
char buf[BUFFSIZE];
serialFd = open("/tyCo/0",O_RDWR,0); /*以读写方式打开串口1,得到相应的文件描述符SerialFd*/
if(write(serialFd,"Input : ", 8) == ERROR) /*输出提示语Input: */
perror("Write 1 ");
if((n = read(serialFd, buf, BUFFSIZE)) > 0) /*等待串口输入*/
{
if(write(serialFd,"Your Input is ", 15) == ERROR)
perror("Write 2 ");
else
{
#if 1
if(write(serialFd, buf, n) != n) /*将从串口读到的数据写回串口*/
perror("Write 3 ");
#endif
}
}
else
perror("read");
close(serialFd);
}
void test_ioctl()
{
int serialFd;
serialFd = open("/tyCo/0",O_RDWR,0);
/*设置串口速率为38400*/
if(ioctl(serialFd, FIOBAUDRATE, 115200)== ERROR)
perror("ioctl 1");
/*设置串口模式为RAW模式*/
if(ioctl(serialFd, FIOSETOPTIONS, OPT_RAW)== ERROR)
perror("ioctl 2");
else
printf("\n\rioctl set mode RAW\n\r");
close(serialFd);
/*用test_read测试*/
test_read();
serialFd = open("/tyCo/0",O_RDWR,0);
/*设置串口恢复成LINE模式,以及恢复其他终端属性*/
if(ioctl(serialFd, FIOSETOPTIONS, OPT_TERMINAL)== ERROR)
perror("ioctl 3");
else
printf("\nioctl set mode LINE\n");
close(serialFd);
/*用test_read测试*/
test_read();
close(serialFd);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -