日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> HK32/航順 >> 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤的應(yīng)用記錄

關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤的應(yīng)用記錄

關(guān)鍵字:航順芯片 HK32F103串口 USART數(shù)據(jù)錯(cuò)誤 航順代理 作者: 來(lái)源: 發(fā)布時(shí)間:2022-05-11  瀏覽:5

有部分客戶在使用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ì)誤差,用戶可以采用三種方式來(lái)解決:

1. 修改STOP bit位數(shù),把stop bit設(shè)成0.5,但是我們芯片的發(fā)送stop bit寬度也會(huì)變成0.5。這種方法要注意的是:對(duì)方芯片有可能無(wú)法接受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中斷問(wèn)題

用戶串口通訊打開(kāi)了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的問(wèn)題。

這個(gè)與我們HK的DMA設(shè)置與ST略有不同,HK的DMA通道在關(guān)閉后,對(duì)應(yīng)的DMA_CNDTRn的值會(huì)被重新加載為本次發(fā)送開(kāi)始前用戶配置的值(即已經(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)用庫(kù)函數(shù)讀出DMA_CNDTRn寄存器的值,再關(guān)閉DMA通道,然后追加新的數(shù)據(jù)到緩存buffer(可能是用戶在RAM中定義的一個(gè)數(shù)組),再啟用DMA發(fā)送,這樣來(lái)完成數(shù)據(jù)的拼接發(fā)送。

如需要了解更多航順MCU產(chǎn)品,請(qǐng)聯(lián)系航順核心代理商,穎特新科技,或者掃碼聯(lián)系我們!

航順代理聯(lián)系方式

在之前的介紹中,我們也為大家介紹了國(guó)外品牌采用航順HK32F030R8T6代替出現(xiàn)串口不兼容解決方法

編輯:zzy  最后修改時(shí)間:2022-05-11

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

砀山县| 台江县| 沈阳市| 潜江市| 师宗县| 桦南县| 朝阳市| 门头沟区| 东乡县| 天台县| 土默特右旗| 临邑县| 天台县| 清新县| 星座| 华亭县| 巢湖市| 芦山县| 富阳市| 新龙县| 轮台县| 淮南市| 莆田市| 云安县| 县级市| 和静县| 安平县| 宣武区| 凤冈县| 犍为县| 竹溪县| 德州市| 土默特右旗| 固始县| 上虞市| 长白| 申扎县| 青州市| 新宾| 连平县| 崇文区|