0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HK32MCU應用筆記(四)| 關于老版本HK32F103串口USART偶爾出現數據錯誤

jf_pJlTbmA9 ? 來源:航順芯片 ? 作者:航順芯片 ? 2023-09-18 11:00 ? 次閱讀

有部分客戶在使用HK32F103系列芯片的串口通訊時,偶爾出現數據錯誤的原因具體有以下幾點:

1.串口通訊時因為可能存在累計誤差偶爾造成數據錯誤。

2.用戶在配置串口波特率參數時因為HK有細微地方與ST不同。

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

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

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

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

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

關于上述第二種波特率參數配置,主要是用戶需要較高的波特率時,導致波特率配置寄存器的整數部分為1,還存在小數部分的情況。這時HK芯片對小數部分會被忽略掉,導致USART輸出的bit寬度不對。出現這種應用時,用戶需要調整USART工作頻率和波特率的關系,避免波特率配置寄存器的整數部分為1,還存在小數部分。

另外應用串口(USART)還應注意以下2點:

1.串口USART RX IDLE中斷問題

用戶串口通訊打開了RX IDLE中斷后出現反復進入的原因是因為IDLE中斷標志不能清除。

解決方法:

Step 1. 關閉IDLE 中斷.

Step 2. 在RXNE 事件后:

A. 清除IDLE標志.

B. 然后使能IDLE中斷.

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

2.串口USART使用DMA傳輸時, DMA通道關閉后DMA_CNDTRn值Reload的問題。

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

處理數據拼接的解決方案:

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

來源:航順芯片

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120383
  • 串口
    +關注

    關注

    14

    文章

    1554

    瀏覽量

    76527
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30859
收藏 人收藏

    評論

    相關推薦

    HK32MCU用筆記)| 關于老版本HK32F103串口USART偶爾出現數據錯誤

    有部分客戶在使用HK32F103系列芯片的串口通訊時,偶爾出現數據錯誤的原因具體有以下幾點。
    發(fā)表于 02-08 15:23 ?0次下載
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(<b class='flag-5'>四</b>)| <b class='flag-5'>關于</b><b class='flag-5'>老版本</b><b class='flag-5'>HK32F103</b><b class='flag-5'>串口</b><b class='flag-5'>USART</b><b class='flag-5'>偶爾</b><b class='flag-5'>出現</b><b class='flag-5'>數據</b><b class='flag-5'>錯誤</b>

    HK32MCU用筆記(二十)| HK32F103xC/D/E USB枚舉情況分析(二)

    HK32MCU用筆記(二十)| HK32F103xC/D/E USB枚舉情況分析(二)
    的頭像 發(fā)表于 09-18 10:58 ?579次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(二十)| <b class='flag-5'>HK32F103</b>xC/D/E USB枚舉情況分析(二)

    HK32MCU用筆記(十九)| HK32F103xC/D/E USB枚舉情況分析

    HK32MCU用筆記(十九)| HK32F103xC/D/E USB枚舉情況分析
    的頭像 發(fā)表于 09-18 10:58 ?818次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十九)| <b class='flag-5'>HK32F103</b>xC/D/E USB枚舉情況分析

    HK32MCU用筆記(十八)| HK32F103xC/D/E-DAC的應用及注意事項

    HK32MCU用筆記(十八)| HK32F103xC/D/E-DAC的應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1087次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十八)| <b class='flag-5'>HK32F103</b>xC/D/E-DAC的應用及注意事項

    HK32MCU用筆記(十七)| HK32F103xC/D/E-flash擦寫應用及注意事項

    HK32MCU用筆記(十七)| HK32F103xC/D/E-flash擦寫應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1077次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十七)| <b class='flag-5'>HK32F103</b>xC/D/E-flash擦寫應用及注意事項

    HK32MCU用筆記(十六)| HK32F103xC/D/E-Timer的應用及注意事項

    HK32MCU用筆記(十六)| HK32F103xC/D/E-Timer的應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?791次閱讀

    HK32MCU用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨配置

    HK32MCU用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨配置
    的頭像 發(fā)表于 09-18 10:58 ?683次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十五)| <b class='flag-5'>HK32F103</b>xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨配置

    HK32MCU用筆記(十四)| HK32F103x/C/D/E-TIM1的應用及注意事項

    HK32MCU用筆記(十四)| HK32F103x/C/D/E-TIM1的應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?802次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十四)| <b class='flag-5'>HK32F103</b>x/C/D/E-TIM1的應用及注意事項

    HK32MCU用筆記(十三)| HK32F103xC/D/E-ADC的應用及注意事項

    HK32MCU用筆記(十三)| HK32F103xC/D/E-ADC的應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1121次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十三)| <b class='flag-5'>HK32F103</b>xC/D/E-ADC的應用及注意事項

    HK32MCU用筆記(十二)| HK32F103xC/D/E的GPIO的應用及注意事項

    HK32MCU用筆記(十二)| HK32F103xC/D/E的GPIO的應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?923次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十二)| <b class='flag-5'>HK32F103</b>xC/D/E的GPIO的應用及注意事項

    HK32MCU用筆記(十一)| HK32F103xC/D/E的flash讀保護應用及注意事項

    HK32MCU用筆記(十一)| HK32F103xC/D/E的flash讀保護應用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1001次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(十一)| <b class='flag-5'>HK32F103</b>xC/D/E的flash讀保護應用及注意事項

    HK32MCU用筆記(九)| HK32F103x8xB系列CAN的應用解決方案

    HK32MCU用筆記(九)| HK32F103x8xB系列CAN的應用解決方案
    的頭像 發(fā)表于 09-18 10:59 ?702次閱讀

    HK32MCU用筆記(六)| HK32MCU芯片調試心得

    HK32MCU用筆記(六)| HK32MCU芯片調試心得
    的頭像 發(fā)表于 09-18 10:59 ?794次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(六)| <b class='flag-5'>HK32MCU</b>芯片調試心得

    HK32MCU用筆記(五)| 關于應用HK32F030延時效率問題

    HK32MCU用筆記(五)| 關于應用HK32F030延時效率問題
    的頭像 發(fā)表于 09-18 11:00 ?681次閱讀

    HK32MCU用筆記(一)| HK32F030X系列在PH測量筆的應用

    HK32MCU用筆記(一)| HK32F030X系列在PH測量筆的應用
    的頭像 發(fā)表于 09-18 11:00 ?1262次閱讀
    <b class='flag-5'>HK32MCU</b>應<b class='flag-5'>用筆記</b>(一)| <b class='flag-5'>HK32F</b>030X系列在PH測量筆的應用