关于PL2303芯片

    这几天调试STM32,开发板上STM32的串口是通过PL2303转USB连接电脑的。STM32F103xB的datasheet上说上面的3个串口,其中一个最高可达4.5M,其他可达到2.25M。One of the USART interfaces is able to communicate at speeds of up to 4.5 Mbit/s. The other available interfaces communicate at up to 2.25 Mbit/s.但究竟是哪个能达到4.5M呢,没说;难道随便一个都可以,但只能一个达到4.5M?(2012年9月16日16:56:58,找到了,只能是USART1,因为只有USART1是挂在APB2上面的,而APB2的最高频率可到72Mhz,所以72/16 = 4.5Mbps. 当然,如果用每个波周期8个采样的话,甚至可以到9Mbps)

    这个先不管,通过PL2303与电脑的通信的波特率限制在于PL2303芯片,因为根据其手册说明,最高可达1.2M,远小于2.25Mbit/s所以就不纠结哪个4.5了。但实际是否真的能达到1.2Mbit/s呢?测试一下就知道了。

    步骤:

    1、设置的时候先保证波特率的计算公式得出的USARTDIV不要是小于1的数;由于我使用USART1,所以设置APB2的时钟为36M以上,这样,即使设置到1.2M的波特率,USARTDIV也不会是小于1的数了。

    2、鉴于市面上的串口软件很少提供1.2M的波特率,所以得自己写一个了。如下

    3、开始我测试到460800都是可以的,但是上到576000就不行了,以为到极限了。但是后来查看PL2303的手册,上面有一个表:

可以看到,上面并没有576000这个波特率,我想也许得是表上面的波特率,PL2303才支持,也就是说,是可以达到更高的波特率的,就试了一下614400,果然可以,最后试了1228800也可以,这个速度可以满足许多应用的要求了,nice!

posted @ 2012-09-14 20:24  果壳中的宇宙  阅读(4469)  评论(9编辑  收藏  举报