关于波特率

请问,CH374和CP2102通信支持128000的波特率吗?谢谢

这个需要看下CP2102上面的LINUX的驱动源代码就可以知道了。很早之前有看过,但是记不清有没有这个波特率,你可以去看下源代码即可。主要是在设置波特率的控制传输需要传递的函数的两个变量是多少。


源代码里倒是没有这个波特率,自己不可以设吗?按它的算法,12800的话是Bound_Data=0x001D?

UINT16 CP2102_Bound_Data( unsigned short Bound_D )//输入数据是波特率,输出数据是波特率除数 { unsigned short Bound_Data; switch (Bound_D){ case 600: Bound_Data=0x1800;break; case 1200: Bound_Data=0x0c00;break; case 2400: Bound_Data=0x0600;break; case 4800: Bound_Data=0x0300;break; case 9600: Bound_Data=0x0180;break; case 19200: Bound_Data=0x00c0;break; case 38400: Bound_Data=0x0060;break; /*case 115200: Bound_Data=0x0020;break;*/ default: break; } return Bound_Data; }


不是说自己不可以设置,只是你不知道设置什么样的值,让你去看源程序的目的就是找到设置这些波特率的值。上面的这些值也是我看源程序看来的。这个是比较早的时候看的。至于你说的设置12800波特率是多少值不是按照你的算法来推断的吧。


不好意思,我是新手,后来又发帖是怕沉了,主要是很着急用,希望能理解。CP2102的LINUX的驱动源代码没找到,方便的话能否发下邮箱呢?个人信息保护,已隐藏,非常非常感谢!


主要是因为从600到38400都能试通,先不说我自个设置的128000吧(那个值是根据原来600到38400设置规律推算的),115200是原来函数里就有的(只不过被注释掉了),怎么也行不通,再者,为什么要把115200给注释掉呢?(偏偏它试不通)其实我很不能理解。恳请解惑,因为我们必须要用128000的。


我自己找到原因了,那个函数参数类型是unsigned short,是16位的, 115200超范围了!!!所以不能写case 115200!。这大概就是你们当初注释掉115200的原因吧。。。


只有登录才能回复,可以选择微信账号登录