|
int main(int argc, char *argv[])
{
int fd;
int nread;
//void *buf;
char buff[512];
//buf=&buff;
//printf ("%d",buf);
char *dev ="/dev/ttyS1";
/* 打开指定的串口设备 */
fd = OpenDev(dev);
if (fd>0) {
set_speed(fd);
}
else {
printf("Can't Open Serial Port!\n");
exit(1);
}
/* 设置串口的参数 */
if (set_para(fd)== 1) {
printf("Set Parity Error\n");
exit(1);
}
/* 在后台守候,检查缓冲区内是否有内容,并将缓冲区的
内容显示出来*/
while(1) {
int nread;
while ((nread = read(fd,buff,512))>0) {
printf ("nnread is %d\n",nread);
buff[nread+1]='\0';
int i;
for (i=0;i<nread;i++ ){
printf ("buff is %c\n",buff);
}
printf ("buf is %s\n",buff);
}
}
}
上面是我写的一段程序,目的就是将串口收到的字符显示在控制台上。
现在我可以打印出nnread is "收到的字符的个数",但是无法打印出接收到的字符。
我想打印buff这个数组。但是无论如何也打印不出来。
我把这个数组定义成int形的。然后就可以打印出一些数字,我猜可能是ascii码值。
我没有看懂read函数的参数的具体的用法,特别是第二项那个指针。
请教高人指点! |
|