CH375B無(wú)法改變波特率

使用STM32來(lái)在串口模式下操作CH375B芯片,在默認(rèn)波特率9600下,讀寫文件等功能均測(cè)試OK。


感覺打開文件比較慢,不知道是否是波特率比較低的原因,嘗試更改波特率,使用代碼如下:


static UINT8 adjustBaudrate(void)

{

? ? USART_InitTypeDef _usart;

? ??

? ? xWriteCH375Cmd(CMD_SET_BAUDRATE);


// ? ?xWriteCH375Data(0x03);

// ? ?xWriteCH375Data(0xC4); ? ? ?//100 000

// ? ?USART1->BRR = 0x0168; ? ? ??

? ??

// ? ?xWriteCH375Data(0x03);

// ? ?xWriteCH375Data(0xCC); ? ? ?//115 200

// ? ?USART1->BRR = 0x0138; ? ? ??


? ? xWriteCH375Data(0x02);

? ? xWriteCH375Data(0xD9); ? ? ?//19 200

? ? USART1->BRR = 0x0753; ? ? ??

? ??

// ? ?xWriteCH375Data(0x02);

// ? ?xWriteCH375Data(0xB2); ? ? ?//9 600

// ? ?USART1->BRR = 0x0EA6; ? ? ??

// ? ?

? ? return xReadCH375Data();

}


測(cè)試了幾種情況,在默認(rèn)9600的波特率下,用示波器監(jiān)測(cè)CH375B TxD引腳的信號(hào),除了執(zhí)行修改波特率為9600的命令有信號(hào)外(返回值為0x51,即CMD_RET_SUCCESS),其他情況下均無(wú)信號(hào)。


所以,從上面的結(jié)果來(lái)看,修改波特率為9600能成功,時(shí)序和代碼應(yīng)該是沒問(wèn)題的。


現(xiàn)在的問(wèn)題是為什么修改為其他的波特率都不能成功?

已解決,參照http://m.findthetime.net/index.php?s=/forum-page-thread-id-12847-p-3.html?


CH375在收到修改波特率的命令后,等數(shù)百us再發(fā)狀態(tài)返回,?
所以單片機(jī)有兩種處理方法:?
1、推薦的,簡(jiǎn)單的,發(fā)出修改命令后,延時(shí)5ms以上,修改自身波特率,清除串口接收中斷標(biāo)志/清接收緩沖區(qū),忽略CH375的返回狀態(tài),然后處理下一條命令?
2、精確的,發(fā)出修改命令后,確保最后一個(gè)字節(jié)發(fā)送完畢后(關(guān)鍵是,將數(shù)據(jù)送到串口發(fā)送緩沖區(qū),過(guò)一會(huì)它才能完全發(fā)出去,像16C550有發(fā)送移位寄存器空標(biāo)志),修改自身波特率(修改時(shí)可能會(huì)無(wú)意中清除接收緩沖區(qū)中的數(shù)據(jù)),立即準(zhǔn)備接收,否則就會(huì)錯(cuò)過(guò)CH375返回的狀態(tài)而一直等下去


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频