简介
操作系统:WIN7
开发IDE:CodeLite V3.0.5041
编译器:GNU GCC V4.5.2
代码
/***********************************************************************//**
* @file main.c
* @brief Serial Port programming, using C standard library
* @version 1.0
* @date 7. July. 2013
* @author jerry2012cn(tudengqian@gmail.com)
**************************************************************************/
#include <stdio.h>
int main()
{
char* COMx = "com3";
FILE* fp;
printf("This's Serial Port Testing!\n");
/** Open Com */
if ((fp = fopen(COMx, "wb+")) == NULL) {
printf("Open %s Failed!\n",COMx);
}
/** Send "Hello,world!" */
fwrite((char*)"Hello,world!",sizeof("Hello,world!"),1,fp);
/** Notice: moves the file position indicator to the beginning in a file */
rewind(fp);
char recBuf = 0x00;
/** waiting a vaild character */
while (fread(&recBuf, 1, 1, fp) == 0);
printf("Received char is %c\n", recBuf);
/** close Com */
fclose(fp);
return 0;
}
解释
在Linux操作系统里,一切皆文件!windows借鉴Linux这一思想;像串口,并口,传真机等都属于字符设备。由于C语言没有提供特定的输入/输出语句,程序的输入/输出功能是通过调用输入/输出函数来实现的, 为了方便程序的编写及函数的调用C语言提供了一个标准输入/输出函数库作为程序的接口。在标准输入/输出库中集中了一系列输入/输出函数。C把标准输入/输出库中各函数所需要的定义说明全部写在文件“stdio.h”中,编写程序时要进行的输入/输出操作必须引用这一文件。同时也可以自己开发输入/输出语句来代替原来的库函数,这样能方便地从一个系统移植到另一个系统。
不知道如何通过标准库哪些函数可以去设置波特率等参数!
重要函数介绍
fopen()
功能:打开一个文件。
函数原型:
FILE * fopen(const char * path,const char * mode);
参数说明:
-
- path : 文件路径\文件名
- mode:读写模式,有r, w, 等
返回值:如果打开成功,返回指向文件的指针,打开失败返回NULL.
fclose()
功能:关闭一个流,可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。
函数原型:
int fclose(FILE *stream);
-
- stream: 文件流指针
返回值:关闭成功返回0,失败返回EOF。
fwrite()
功能:向文件流写入一个数据块。
函数原型
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
返回值:返回实际写入的数据块数目
fread()
功能:从文件流读出一个数据块。
函数原型
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
返回值:实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.
rewind()
功能:将文件内部的位置指针重新指向一个流(数据流/文件)的开头。等价于(void)fseek(stream, 0L, SEEK_SET);
函数原型
void rewind(FILE *stream);
-
- stream:目标文件指针;
返回值: 无
----------------------------------------------------END----------------------------------------------