赞
踩
/dev/ttyS5
gnd 接gnd rx接tx5 tx接rx5 设置波特率为115200这样pc机就可以与orangepi通信了
int serialOpen (char *device, int baud);//打开串口 成功返回文件描述符 失败返回-1 device:设备驱动 baud:波特率
void serialPutchar(int fd,char c);///发送 fd是文件描述符
void serialGetchar(int fd,char c);.//接受
void serialClose(int fd);//关闭串口
int serialDataAvail (int fd)//获取字符串可用的字节数
serialTest.c
/* * serialTest.c: * Very simple program to test the serial port. Expects * the port to be looped back to itself * * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net> *********************************************************************** * This file is part of wiringPi: * https://projects.drogon.net/raspberry-pi/wiringpi/ * * wiringPi is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * wiringPi is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with wiringPi. If not, see <http://www.gnu.org/licenses/>. *********************************************************************** */ #include <stdio.h> #include <string.h> #include <errno.h> #include <pthread.h> #include <string.h> #include <stdlib.h> #include <wiringPi.h> #include <wiringSerial.h> int fd; void *Sendhandler(){ char *sendBuf=NULL; sendBuf=(char *)malloc(32); while(1){ memset(sendBuf,'\0',32); scanf("%s",sendBuf); while(*sendBuf){//sendBuf!='\0' serialPutchar(fd,*sendBuf++);//发送 } } } int main () { pthread_t send; if((fd=serialOpen("/dev/ttyS5",115200))==-1)//打开串口 { fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ; return 1 ; } if (wiringPiSetup () == -1) { fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ; return 1 ; } pthread_create(&send,NULL,Sendhandler,NULL); while(1){ while (serialDataAvail (fd))//可接收的字节数 printf ("%c", serialGetchar (fd)) ;//接收 fflush (stdout) ; } } printf ("\n") ; return 0 ; }
gcc serialTest.c -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt -lpthread
sudo ./a.out
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。