linux内核中ftdi芯片驱动问题

xwz19820901 2013-07-02 04:29:47
各位大侠,现在在测试FTDI公司的FT4232HL型号的USB转串口芯片,该芯片通过USB数据线连接PC,正确的安装驱动后,可以虚拟出四个串口;测试芯片接到linux系统服务器后,服可以识别出USB转串口,但是我使用linux下的SCT串口调试软件和自己写的串口通信测试代码都可以发送数据给识别出的串口,不能收到串口返回的数据;现在问题是操作系统识别了该USB转串口设备,识别的型号是正确的,在/dev目录下也正确的显示了识别的串口文件,但是通信总是不正常,请问这是不是驱动的问题,我手里有该芯片最新的驱动,请问我如何将该驱动编译进内核。
...全文
845 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jctang 2015-05-06
  • 打赏
  • 举报
回复
你好楼主 这个FT4232 USB转串口的驱动做好了吗 我目前也正在做,但是一直有问题???
xwz19820901 2013-07-02
  • 打赏
  • 举报
回复
上面是我的测试代码
xwz19820901 2013-07-02
  • 打赏
  • 举报
回复
int iOpenCom = open("/dev/ttyS0", O_RDWR ); if(COM_FUN_ERROR == iOpenCom) { printf("(Open Comm Error\n"); } struct termios newtio,oldtio; if (tcgetattr(iOpenCom,&oldtio) != ZERO) { printf("Get Atrr Eorror"\n"); } bzero(&newtio,sizeof(newtio)); newtio.c_cflag |= CLOCAL | CREAD; newtio.c_cflag &= ~CSIZE; newtio.c_cflag |= CS8;//数据位数 newtio.c_cflag &= ~PARENB;//校验方式为无校验 cfsetispeed(&newtio,B115200); cfsetospeed(&newtio,B115200);//波特率 newtio.c_cflag &= ~CRTSCTS ; //将硬件流控制位CRTSCTS清0,其他位不变 newtio.c_cflag &= ~CSTOPB;//停止位设为1 newtio.c_cc[VTIME] = ZERO; newtio.c_cc[VMIN] = ZERO; tcflush(iOpenCom,TCIFLUSH);//清空串口缓存 if((tcsetattr(iOpenCom,TCSANOW,&newtio))!=ZERO) { printf("Set Attr error\n"); } char buf[8] = {0}; char readbuf[8] = {0}; buf[0] = 'b'; buf[1] = 'c'; int retwrite = write(iOpenCom, buf, 2); if(retwrite == -1) { printf("写入串口数据失败\n"); } printf("retwrite %d\n", retwrite); printf("写入的数据 %s\n", buf); int ret; ret = read(iOpenCom,readbuf, 2); if(ret == -1) { printf("读取串口数据失败了\n"); } printf("ret %d\n", ret); printf("收到数据 %s\n", readbuf);

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧