請問,CH374和CP2102通信支持128000的波特率嗎?謝謝
這個需要看下CP2102上面的LINUX的驅(qū)動源代碼就可以知道了。很早之前有看過,但是記不清有沒有這個波特率,你可以去看下源代碼即可。主要是在設(shè)置波特率的控制傳輸需要傳遞的函數(shù)的兩個變量是多少。
源代碼里倒是沒有這個波特率,自己不可以設(shè)嗎?按它的算法,12800的話是Bound_Data=0x001D?
UINT16 CP2102_Bound_Data( unsigned short Bound_D )//輸入數(shù)據(jù)是波特率,輸出數(shù)據(jù)是波特率除數(shù) { 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; }
不是說自己不可以設(shè)置,只是你不知道設(shè)置什么樣的值,讓你去看源程序的目的就是找到設(shè)置這些波特率的值。上面的這些值也是我看源程序看來的。這個是比較早的時候看的。至于你說的設(shè)置12800波特率是多少值不是按照你的算法來推斷的吧。
不好意思,我是新手,后來又發(fā)帖是怕沉了,主要是很著急用,希望能理解。CP2102的LINUX的驅(qū)動源代碼沒找到,方便的話能否發(fā)下郵箱呢?個人信息保護(hù),已隱藏,非常非常感謝!
主要是因為從600到38400都能試通,先不說我自個設(shè)置的128000吧(那個值是根據(jù)原來600到38400設(shè)置規(guī)律推算的),115200是原來函數(shù)里就有的(只不過被注釋掉了),怎么也行不通,再者,為什么要把115200給注釋掉呢?(偏偏它試不通)其實我很不能理解。懇請解惑,因為我們必須要用128000的。
我自己找到原因了,那個函數(shù)參數(shù)類型是unsigned short,是16位的, 115200超范圍了?。?!所以不能寫case 115200!。這大概就是你們當(dāng)初注釋掉115200的原因吧。。。