- 积分
- 45
贡献20
飞刀2 FD
注册时间2012-4-11
在线时间14 小时
扫一扫,手机访问本帖
|
在ok6410(android系统运行),我希望通过调用串口驱动程序来观测底层上来的数据,现在编程的具体流程如下:
1、android代码的主目录(/root/forLinux/android2.3.4_32bit),在external文件夹下创建SerialComm文件夹
2、在SerialComm目录下创建两个文件
SerialComm.c和Android.mk
SerialComm.c:
#include <stdio.h>
#include <termios.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(int argc,char* argv[])
{
//open serial with block
int fd=open("/dev/s3c2410_serial1",O_RDWR);
if(fd==-1)
{
perror("open error");
return 0;
}
printf("fd=%d\n",fd);
//set s3c2410_serial1 property
tcflush(fd,TCIOFLUSH);
struct termios SerialPro;
memset(&SerialPro,0,sizeof(struct termios));
tcgetattr(fd,&SerialPro);
cfsetispeed(&SerialPro,B9600);
cfsetospeed(&SerialPro,B9600);
//update serial property
int istatus=tcsetattr(fd,TCSANOW,&SerialPro);
if(istatus!=0)
{
printf("Failed to change serial property.\n");
perror("Failed");
return 0;
}
int wret=write(fd,"123456789\n",strlen("123456789\n"));
printf("ret=%d\n",wret);
return 0;
}
Android.mk:
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS:=optional
LOCAL_SRC_FILES:=SerialComm.c
LOCAL_MODULE:=SerialComm
include $(BUILD_EXECUTABLE)
3、然后在android文件系统的主目录执行:make SerialComm生成可执行文件:SerialComm
4、使用SD卡将SerialComm拷贝到开发板上的根目录下,使用超级终端设置好串口的参数,执行./SerialComm
通过打印信息可以看到串口数据已经成功的发送完成,但是在我的超级终端里面并没有数据,偶尔有都是乱码。
请各位高手指出本程序的问题点,同时给一点建议,谢谢! |
|