HK32F103串口出現(xiàn)數(shù)據(jù)錯(cuò)誤的解決方案!

來源: 深圳市宏德偉創(chuàng)科技有限公司 人氣:404 發(fā)表時(shí)間:2021/09/07 10:53:26

部分客戶在使用HK32F103系列芯片的串口通訊時(shí),偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤的原因具體有以下幾點(diǎn):

1.串口通訊時(shí)因?yàn)榭赡艽嬖诶塾?jì)誤差偶爾造成數(shù)據(jù)錯(cuò)誤。

2.用戶在配置串口波特率參數(shù)時(shí)因?yàn)镠K有細(xì)微地方與ST不同。

下面就以上原因,用戶根據(jù)如下修改,可以使串口通訊正常工作。

對(duì)于波特率累計(jì)誤差,用戶可以采用三種方式來解決:

1. 修改STOP bit位數(shù),把stop bit設(shè)成0.5,但是我們芯片的發(fā)送stop bit寬度也會(huì)變成0.5。這種方法要注意的是:對(duì)方芯片有可能無法接受0.5 stop bit。

2.把波特率設(shè)置稍微提高1%左右。比如對(duì)方發(fā)出115200bps,HK的芯片波特率需要設(shè)置為115200*1.01=116352bps(偏差小于1%)。

3.建議HK芯片和對(duì)方發(fā)送數(shù)據(jù)時(shí),都不要背靠背發(fā)送。

關(guān)于上述第二種波特率參數(shù)配置,主要是用戶需要較高的波特率時(shí),導(dǎo)致波特率配置寄存器的整數(shù)部分為1,還存在小數(shù)部分的情況。這時(shí)HK芯片對(duì)小數(shù)部分會(huì)被忽略掉,導(dǎo)致USART輸出的bit寬度不對(duì)。出現(xiàn)這種應(yīng)用時(shí),用戶需要調(diào)整USART工作頻率和波特率的關(guān)系,避免波特率配置寄存器的整數(shù)部分為1,還存在小數(shù)部分。

另外應(yīng)用串口(USART)還應(yīng)注意以下2點(diǎn):

1.串口USART RX IDLE中斷問題

用戶串口通訊打開了RX IDLE中斷后出現(xiàn)反復(fù)進(jìn)入的原因是因?yàn)镮DLE中斷標(biāo)志不能清除。

◆解決方法:

Step 1. 關(guān)閉IDLE 中斷.

Step 2. 在RXNE 事件后:

A. 清除IDLE標(biāo)志.

B. 然后使能IDLE中斷.

Step 3. 在IDLE中斷觸發(fā)后: 除能IDLE中斷.

2.串口USART使用DMA傳輸時(shí), DMA通道關(guān)閉后DMA_CNDTRn值Reload的問題。

這個(gè)與我們HK的DMA設(shè)置與ST略有不同,HK的DMA通道在關(guān)閉后,對(duì)應(yīng)的DMA_CNDTRn的值會(huì)被重新加載為本次發(fā)送開始前用戶配置的值(即已經(jīng)發(fā)送的數(shù)據(jù)個(gè)數(shù)).如果客戶在dma發(fā)送完成后關(guān)閉了對(duì)應(yīng)的通道,然后讀取其DMA_CNDTRn的值就會(huì)出現(xiàn)非零值.如果用戶想要使用拼接方式發(fā)送數(shù)據(jù)(在一次數(shù)據(jù)未發(fā)完前追加新的數(shù)據(jù)發(fā)送)且前一次數(shù)據(jù)已發(fā)送完成的情況下就會(huì)出現(xiàn)錯(cuò)誤的數(shù)據(jù)拼接。

處理數(shù)據(jù)拼接的解決方案:

如果是單次數(shù)據(jù)發(fā)送模式,用戶在DMA數(shù)據(jù)發(fā)送完成后不用關(guān)閉DMA通道,在追加新的數(shù)據(jù)發(fā)送時(shí),先在未關(guān)閉DMA通道的情況下調(diào)用庫函數(shù)讀出DMA_CNDTRn寄存器的值,再關(guān)閉DMA通道,然后追加新的數(shù)據(jù)到緩存buffer(可能是用戶在RAM中定義的一個(gè)數(shù)組),再啟用DMA發(fā)送,這樣來完成數(shù)據(jù)的拼接發(fā)送。

關(guān)于宏德偉創(chuàng)科技


       宏德偉創(chuàng)科技有限公司總部位于深圳市,具有20年電子元器件分銷經(jīng)驗(yàn),是電子行業(yè)著名的混合型電子元器件一級(jí)授權(quán)代理商和現(xiàn)貨分銷,方案技術(shù)綜合服務(wù)商,同時(shí)也是中國(guó)電子市場(chǎng)價(jià)格指數(shù)數(shù)據(jù)采集點(diǎn),半導(dǎo)體應(yīng)用聯(lián)盟發(fā)起單位,華強(qiáng)網(wǎng)十大優(yōu)質(zhì)供應(yīng)商。


      我司主營(yíng)產(chǎn)品:32位單片機(jī)MCU、電源IC、二三極管、傳感器、肖特基等。
      分銷產(chǎn)品:ST、TI、ADI、IR、NXP等。


一級(jí)授權(quán)代理:美國(guó)泰德半導(dǎo)體有限公司、昆山鼎富電子華南地區(qū)特約經(jīng)銷商、艾佛森傳感器、中科芯CKS航順HK等。產(chǎn)品廣泛應(yīng)用于:數(shù)碼消費(fèi)類電子、工業(yè)、安防、智能家居、儲(chǔ)能電源等電子產(chǎn)品領(lǐng)域。


公司擁有先進(jìn)的管理體系,完善的客戶服務(wù)體系和一批高素質(zhì)的銷售服務(wù)隊(duì)伍,一直堅(jiān)持“質(zhì)量保證、共榮共贏、不斷創(chuàng)新”的經(jīng)營(yíng)理念,以專業(yè)精神,持續(xù)發(fā)揮在技術(shù)、資金、人力資源方面的優(yōu)勢(shì),為國(guó)內(nèi)外客戶提供一流的方案設(shè)計(jì)、品質(zhì)、價(jià)格等一站式元器件采購(gòu)服務(wù),立志成為中國(guó)最好的電子元器件供應(yīng)商,為中國(guó)半導(dǎo)體行業(yè)貢獻(xiàn)一份微薄之力!


業(yè)務(wù)咨詢:18173965967 
     技術(shù)咨詢:0755-83387253   
                  0755-82807699