求助:WINCE下2440串口读写问题(急)

sda4576   2007-11-9 14:35 楼主
小弟正在调试WINCE+2440下串口程序,现在COM1已经打开,我把2440的板子COM1直接用串口线连接到PC的COM3,发现通过COM1写到PC的全是???,通过PC写到COM1的是ff,或者77之类的乱码,是怎么回事?先谢了。

回复评论 (12)

有关串口的问题以前的帖子很多,你搜一下好了。
估计是两边的串口设置不一样。
点赞  2007-11-9 17:13
同意楼上,再就是注意ANSI和Unicode的区别
点赞  2007-11-9 17:48
我也遇到这个问题了,应该不波特率不匹配造成的
点赞  2007-11-13 08:06
以前的帖子我也查过了,大多是ANSI和UNICODE的问题,我的设置是一样的,也不是ANSI和UNICODE的问题,我用的是CE6.0就不可以,用5.0和4.2的nk就可以,设置都是一样的,真是郁闷啊~~
点赞  2007-11-13 11:47
你的不同版本的BSP中串口驱动是一样的代码吗?
点赞  2007-11-13 13:16
6.0和5.0下驱动是一样的 5.0是在PB下开发的 6.0都是集成到VS2005里面的 感觉就是这个区别了
点赞  2007-11-13 13:57
用BUSHOUND抓的数据,通过设备向PC些1,PC收到的是80 00,写2,PC收到的是00 然后a1 20 00 00 00 00 20 00 90 00(我看了串口连接上的时候PC收到的是a1 20 00 00 00 00 20 00 80 00),最后又是00, PC向设备写1或者2时候,设备收到ff,写3的时候设备什么也收不到,诡异
点赞  2007-11-13 14:03
Larmy888说的对,是波特率不匹配造成的,我把PC的波特率设为14400就对了,很奇怪的是设备的波特率是115200啊,两边波特率设置的不一样竟然数据是对的,诡异~~~
点赞  2007-11-13 14:33
你的实际波特率应该还是14400,

我用模拟器的时候也发现这个问题了,
波特率明明设置的是4800bps,程序也不报错,运行正常, 用串口监视软件一看,实际的波特率却被设置成了1200bps
点赞  2007-11-13 18:14
串口问题已经解决,确实是波特率不对,不过是clock不对引起的,
if (!KernelIoControl(IOCTL_PROCESSOR_INFORMATION, NULL, 0, &procInfo, sizeof(PROCESSOR_INFO), &dwBytesReturned))
    {
        m_s3c2440_pclk = DEFAULT_S3C2440A_PCLK;
        RETAILMSG(TRUE, (TEXT("WARNING: CReg2440Uart::CReg2440Uart failed to obtain processor frequency - using default value (%d).\r\n"), m_s3c2440_pclk));
    }
    else
    {
        //m_s3c2440_pclk = procInfo.dwClockSpeed;
        //++++++modified by sunwave
        m_s3c2440_pclk = 50625000;
        RETAILMSG(TRUE, (TEXT("INFO: CReg2440Uart::CReg2440Uart using processor frequency reported by the OAL (%d).\r\n"), m_s3c2440_pclk));
    }
现在的问题是不知道在BSP哪里改由KernelIoControl函数得到的procInfo.dwClockSpeed,我是硬改的。
点赞  2007-11-13 18:15
希望知道的朋友指点下哈,谢谢楼上几位,这个问题解决再结贴吧
点赞  2007-11-13 18:18
dwClockSpeed就是由S3C2440A_FCLK得到的。
点赞  2007-12-21 14:40
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复