第3次发帖了。之前查过大量资料。至今还没有实现。
我有一个硬件设备,是通过串口来通讯的.我的C程序在ubuntu下面能正常读写串口。但是移到android模拟器下面或硬件板上面就不行了。
在linux下面C的函数open()返回的fd的3.移到android上返回的就是40了.再用minicom监控串口,发现串口并没有被占用,
也就是说我的模拟器open("/dev/ttyS0")是错的,不是我硬件的串口。那如果是没有打开串口,为什么fd会返回一个40.
另外在启动模拟器的时候是有带参数的 ./emulator -avd android2.3.3 -partition-size 1024 -radio /dev/ttyS0。int fd, socket = 0xff;
struct termios oldtio;
LOGD("start......");
if((fd = init_tty(&oldtio)) < 0)
{
LOGD("Can't find usb-to-serial port SAC!!!");
return -1;
}
LOGD("fd= %d\n",fd);
//if(send(fd, socket) < 1)return -1;
int nread;
char buff[512];
nread = read(fd,buff,512);
LOGD("nread = %d\n",nread);
//while (1)
//{
while(nread > 0){
LOGD("nread= %d\n",nread);
LOGD("buff=%s\n", buff);
}上面是我调用的本地函数,串口的初始化在init里面。之前只能走到fd= 40,之后read的时候就死掉。在昨晚最后一次调试过后。依次走:
Start。
fd= 40
nread = 0
read返回0,表示没有数据。但是我想硬件设备发送指令的时候,这个read还是返回0,也就是根本没有读到它。
百撕不得骑姐。求各位大大帮帮看看。
我有一个硬件设备,是通过串口来通讯的.我的C程序在ubuntu下面能正常读写串口。但是移到android模拟器下面或硬件板上面就不行了。
在linux下面C的函数open()返回的fd的3.移到android上返回的就是40了.再用minicom监控串口,发现串口并没有被占用,
也就是说我的模拟器open("/dev/ttyS0")是错的,不是我硬件的串口。那如果是没有打开串口,为什么fd会返回一个40.
另外在启动模拟器的时候是有带参数的 ./emulator -avd android2.3.3 -partition-size 1024 -radio /dev/ttyS0。int fd, socket = 0xff;
struct termios oldtio;
LOGD("start......");
if((fd = init_tty(&oldtio)) < 0)
{
LOGD("Can't find usb-to-serial port SAC!!!");
return -1;
}
LOGD("fd= %d\n",fd);
//if(send(fd, socket) < 1)return -1;
int nread;
char buff[512];
nread = read(fd,buff,512);
LOGD("nread = %d\n",nread);
//while (1)
//{
while(nread > 0){
LOGD("nread= %d\n",nread);
LOGD("buff=%s\n", buff);
}上面是我调用的本地函数,串口的初始化在init里面。之前只能走到fd= 40,之后read的时候就死掉。在昨晚最后一次调试过后。依次走:
Start。
fd= 40
nread = 0
read返回0,表示没有数据。但是我想硬件设备发送指令的时候,这个read还是返回0,也就是根本没有读到它。
百撕不得骑姐。求各位大大帮帮看看。
解决方案 »
- android 菜鸟求助
- 新新菜鸟,android api 12一下的sdk都是null怎么破?
- 用模拟器WebView跳转1000多次网页后,模拟器不再能浏览网页
- 图片横竖滚动效果
- 如何才能监听UDP端口?
- android系统上能安装JVM运行J2SE程序吗?
- 安装apk
- 关于DrawerLayout和ActionBar整合使用
- 现在学习 Andriod开发,有前途吗?
- View必须设置longClickable为true,否则手势识别无法正确工作//setLongClickable(true);这个函数怎么not find?
- android有与USB通信的相关API吗?在哪个包里面呢??
- Android实现SD卡复位
打开文件权限问题吗?
读写的权限已经在shell里设定过了。还是不行。。
1.模拟器里面的/dev/ttyS0是虚拟的文件.无法与pc的串口挂载.所以使用 emulator -avd android2.3.3 -partition-size 1024 -radio /dev/ttyS0
是不行的。
2.我把程序放到开发板上面的时候,发现我传进去的串口地址无法打开.串口地址我传的是个File.也就是File.canWrite()返回的是false.无法给权限.