-------------------------------------------------------------<br />s3c2410_串口 COM0 终端下不能正确接收键盘输入<br />-------------------------------------------------------------<br />硬件:买的s3c2410核心板,自己做的外围接口板。<br /><br />软件:由vivi引导,移植了linux2.4<br /><br />问题描述:<br /><br />s3c2410的COM0串口连接超级终端后,不能正确地接收键盘的输入。<br />如我输入ls,显示的可能就是am<br />如我输入ifconfig,显示的就是别的字符。<br />(同样的个数,但是字符不是我输入的)<br /><br />(一个一个字符尝试N遍后,可以得到想要的命令)<br /><br />-------------------------------------------------------------<br />问题的现象有:<br /><br />1. s3c2410的COM0串口连接超级终端后,启动电源,由vivi引导。<br /> 此时不进入系统,进入vivi的命令界面<br /> vivi><br /> 我一直键盘上按着a,显示的是:<br />vivi> aaaacaaaaccacaacaaacacaacacccaacacccac<br /><br /> 我一直键盘上按着b,显示的是:<br />vivi> fbffffbffffbfbfbfbffffffbffffbffff<br /><br /> 我一直键盘上按着c,显示的是:<br />vivi> cccccccccccccccccccccccccccccccc<br /><br /> 我一直键盘上按着d,显示的是:<br />vivi> ddlddllllllllddddllddllllldllddll<br /><br /> 我一直键盘上按着e,显示的是:<br />vivi> eggememeemmoeomgmemooommegmemoomeommoeem<br /><br /> 我一直键盘上按着f,显示的是:vivi> ffffffffffffffffffffffff<br /><br /> 我一直键盘上按着f,显示的是:<br />vivi> llllllllllllllllllllllllllllllll<br /><br /> 我一直键盘上按着m,显示的是:<br />vivi> mmommoomoomomommmmmmmmmmmoommomoommomm<br /><br /> 我一直键盘上按着z,显示的是:<br />vivi> ~~~zz~zzzz~~z~~~z~~~~~zzz~~zzz~~~<br /><br /> ......<br /><br />2. 我进入linux后,在终端提示符下<br /> 键盘的输入也不能正确显示在终端提示符下<br /> 如我本来在终端提示符下想输入ifconfig,<br /> 终端上显示为:[/mnt/yaffs]yfconf{g<br /> 又一次在键盘里输入ifconfig字符后,<br /> 终端上显示为: [/mnt/yaffs]kfconfyg<br /> 再输入,终端上显示的还有如 kfconfkg, {fconfyg, yfconf{g 等。<br /><br />3. 在ADS下,编写了对串口操作的程序(可对COM0,COM1操作)<br /> 程序不断地想COMn输出字符a (都是115200 8N1)<br /> <br /> 当Uart_Select(0); 时,向COM0输出数据,发现:<br /> PC上接收COM0的终端接收字符a比较慢,字符一个一个出现<br /><br /> 当Uart_Select(1); 时,向COM1输出数据,发现:<br /> PC上接收COM1的终端接收字符a很快,1s内接收显示10多个字符<br /><br />4. 以前硬件调试时,还出现过乱码问题。如我在终端下ls命令<br /> 输出的目录,在终端显示下有很多乱码。<br /> 后来我换了一个MAX3232,这个乱码问题好像是解决了,<br /> 但是终端不能正确接收键盘字符的问题一直有。<br /><br />-------------------------------------------------------------<br />问题排除:<br /><br />超级终端下我的设置应该没有问题,都是115200,8N1,硬件流无<br /><br />这个问题应该与vivi,嵌的操作系统linux没有关系吧:<br />用ADS下的裸程序向COM0发出'a',为什么PC上接收和显示'a'的速度很慢呢?<br />(同样的程序,同样的寄存器配置COM1就很快。)<br /><br />MAX3232应该没有问题,COM0, COM1是接在一个MAX3232芯片上。<br /><br />核心板没有问题,因为放在博创的试验箱上COM1就正常。<br /><br />-------------------------------------------------------------<br /><br />这到底是怎么回事呢? 请了解的朋友指点,感谢<br /> |
|