请教WinCE应用程序使用大于115200波特率的方案

iwillbeback008 2012-04-06 08:58:45
请教不使用PL2303之类USB转串口,在S3C2440的WinCE应用程序中使用BCD串口结构, 想要波特率提高的614400bps,可否通过改变UART的时钟或是分频值,设置成115200bps,实际工作在614400[就是115200对应614400]。

这个想法是看到帖子“波特率大于115200 打不开串口”【http://topic.csdn.net/u/20070921/17/499ba626-fa78-41a1-9dba-1865a9ead5e5.html】而发。

特来发帖请教各位这样做法的可行性或是那位有这样的经验?
...全文
269 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwillbeback008 2012-05-21
  • 打赏
  • 举报
回复
实践证明:
不管是WinCE还是比如其他的实时嵌入式微型系统RT-Thread等,S3C2440都可以通过合理设置串口时钟类型和分频值来达到波特率高于115200bps的应用。
iwillbeback008 2012-04-11
  • 打赏
  • 举报
回复
在顶起
想多多看看大家的意见
woshi_ziyu 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
请教不使用PL2303之类USB转串口,在S3C2440的WinCE应用程序中使用BCD串口结构, 想要波特率提高的614400bps,可否通过改变UART的时钟或是分频值,设置成115200bps,实际工作在614400[就是115200对应614400]。

这个想法是看到帖子“波特率大于115200 打不开串口”【http://topic.csdn.net/u/20070921/17/4……
[/Quote]
没有具体的试过

自己可以尝试修改一下参数

------------------------------------------------------------------------------
http://forum.ubuntu.org.cn/viewtopic.php?t=227482

你看看2440规格书第11章, 关于UBRDIVn这一节的描述
For example, if the baud-rate is 115200 bps and UART clock is 40 MHz, UBRDIVn is:
UBRDIVn = (int)(40000000 / (115200 x 16) ) -1
= (int)(21.7) -1 [round to the nearest whole number]
= 22 -1 = 21
关键在于理解波特率是从UART clk 分频分出来的这一点,理解了这一点就好说了。
如果你把UART clock分成40MHz, 如果要得到115200,则按照上面的公式来算, 大约就是需要把分频器设置成
21分之1频率。
按照上面的公式,如果把115200替换为250000可计算出,如果你把这个分频值设为 9, 应该就是你要的250K.
主要问题在于有些UART clock频率下分出来可能不是整数, 那么你的波特率就会产生误差。
这个分频值越小,则你的波特率误差会越明显。
iwillbeback008 2012-04-06
  • 打赏
  • 举报
回复
自己顶起来
iwillbeback008 2012-04-06
  • 打赏
  • 举报
回复
我下午在WinCE5。0下可以正常使用PL2303的串口速率大于115200bps的614400bps;
但是目前外设最高波特率也由115200bps提升到614400bps;
但是整个系统运行起来,一个工作流程下来视乎速度换不比115200bps情况下快,
似乎跟WinCE和上位机XP系统的时间片有关系
iwillbeback008 2012-04-06
  • 打赏
  • 举报
回复
恩,我今天使用PL2303在WinCE5.0下,可以正常使用到大于115200bps的614400bps速率,
现在问题又来了,外设那边目前就是使用614400bps速率,但是整个系统的运行时间还是跟使用115200bps时没啥区别,

视乎是PC或是WinCE这边的时间片有关系

19,502

社区成员

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

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