linux_ok6410 ttyUSB0 (GPS)USB转串口总线调试(含代码)

时间:2023-01-26 16:09:42

ttyUSB0调试已经成功好久了,移植没来的及总结实在抱歉。

编译环境:LINUX -3.0.1、 ok6410、RedHat6.0

目的:调试ttyUSB0_GPS调试:

1、首先,需要在内核选项中选中一些选项,来在内核里安装所需USB串口驱动

执行命令:make menuconfig

选择:

Device Drivers  ---> 
    USB support  ---> 
       USB Serial Converter support  ---> 
        [*]USB Generic Serial Driver
        <*> USB Winchiphead CH341 Single Port Serial Driver
<*> USB CP210X family of UART Bridge Controllers
  <*>USB Prolific 2303 Single Port Serial Driver(备用,顺便勾上)
  重新编译内核即可。( 因为我的线上标有“HL-340”,所以我就选 USB Winchiphead CH341 Single Port Serial Driver 这个驱动。)
然后你插入USB串口便会有驱动了,然后你可以看到

# usb 1-1: new full speed USB device number 2 using s3c2410-ohci
usb 1-1: New USB device found, idVendor=cp2102, idProduct=7523
usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 1-1: Product: USB2.0-Ser!
ch341 1-1:1.0: ch341-uart converter detected
usb 1-1: ch341-uart converter now attached to ttyUSB0
2、可以使用命令ls查询:
# ls -l /dev/ttyUSB0
crw-rw----    1 0        0        188,   0 Oct 12 17:41 /dev/ttyUSB0

3、成功后你可以使用命令行来进行测试,根据以下命令来设置相关参数:

/dev/ttyUSB0 ------------------
#设置通信的目标串口,由于我的笔记本没有串口,使用了USB转串口,所以设备为/dev/ttyUSB0
set line /dev/ttyUSB0#设置波特率
set speed 115200#关闭通信监视
set carrier-watch off#设置没有握手协议
set handshake none#数据流控制为无
set flow-control none#设置保守安全及缓慢的传输设置
robust#设置可以传输二进制文件
set file type bin#限制传输文件名
set file name lit#设置接受文件包的大小为1000字节
set rec pack 1000#设置传输文件包的大小为1000字节
set send pack 1000#设置窗口大小
set window 5#---------end------------------------------------这些参数就足够保证能初步连上OK6410,当然,C-kermit其实还有更多参数,并且在配置里还可以定制不同情况下的参数,这些属于题外话,在以后可以慢慢探讨。第二步,就是打开命令进行连接,不过这之前,可以先了解下C-kermit的知识。

(1)、cat /dev/ttyUSB0

但在如果执行上面命令,程序会一直停止在读取的界面,如果我们的要求是想读取一段一段的数据,即分批次读取一定之间内的数据,保存并处理,那应该怎么办呢?我们就需要先用stty将模式设置成raw 并且设置最大连接时间:直接使用Ctrol+C终止当前操作。

stty -F /dev/ttyUSB0 raw speed 9600 min 0 time 10 //设置波特率和延迟时间防止没接收到数据

(2)然后我们可以把每次读取到的数据存储到一个临时文件中,然后对其进行处理:

cat /dev/ttyUSB0 >>GPS数据

5、编写ttyUSB0使用应用程序。

我的程序比较短,我就不献丑了,谁要是想要,给我说,我给他发。

编写之后拷贝到开发板上直接运行,

./uart_test 就可以了。