阅读:1107回复:0
串口tip问题
大家好,
我的硬件开发板是万禾板,操作系统是uclinux。在做 串口应用开发的时候,把万禾板和一台普通pc通过串口相连, 发现pc发送的数据,万禾板可以正确收到,但是万禾板发送 的数据,pc机有些数据偶尔不能收到,此时用tip命令,在 板卡和pc上分别运行tip -s 9600 -l /dev/ttyS0,发现 问题雷同,就是说万禾板发出的数,pc机收不到,或者收到 的数据时乱码,看起来有些像错位,比如万禾板发送数据 \"12345678901234567890123456789012345678901234567 8900123456789001234567890\", pc上tip接收的数据为 \"1.34578902.??678..2?4568901456789012356789.2346 89123.67890?23457?90\", 这种问题时常会出现,而且将万禾板restart后运行tip, 还是这个问题,有时候过了一个晚上,再来运行,tip可能 就正常了,但是应用程序中还是会有错位之类的情况发生。 我不明白为什么重新启动万禾板后,串口状态已经初 始化过了,但是和pc之间的tip数据不正确,这里是运行tip 时候万禾板和pc的串口状态: [yuzh@localhost uClinux-dist]$ su root -c \"stty -a -F /dev/ttyS0\" Password: speed 9600 baud; rows 0; columns 0; line = 0; intr = ; quit = ; erase = ; kill = ; eof = ; eol = ; eol2 = ; start = ; stop = ; susp = ; rprnt = ; werase = ; lnext = ; flush = ; min = 1; time = 5; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke [yuzh@localhost uClinux-dist]$ /ramdisk1/pc/bin> ./stty -a -F /dev/ttyS0 speed 9600 baud; rows 0; columns 0; intr = ; quit = ; erase = ; kill = ; eof = ; eol = ; eol2 = ; start = ; stop = ; susp = ; rprnt = ; werase = ; lnext = ; flush = ; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke /ramdisk1/pc/bin> 怀疑是不是硬件发面的问题,比如万禾板和pc之间速率 的差距,或者说是驱动程序的一些bug,比如初始化,或者 驱动波特率的运算等,我感觉这个不太像是应用层的问题, 会不会是硬件层或者驱动层的问题?我如何定位问题在那个 层次,如果我想看驱动程序,比如串口初始化源代码什么的, 我要看那些目录和程序呢,不知道是不是有什么补丁, 请各位大虾帮忙,谢谢 myfire5454 myfire5454@163.com |
|