久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10873|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

一個關(guān)于UART通信奇偶校驗(yàn)出錯位的讀取話題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98618 發(fā)表于 2016-11-3 11:58 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
某客戶使用STM32F4系列芯片做產(chǎn)品開發(fā),用到USART外設(shè),將其配置在智能卡模式。USART配置為智能卡模式后,并開啟了奇偶校驗(yàn)。

當(dāng)MCU通過UART從卡端讀取數(shù)據(jù)時,如果讀到的數(shù)據(jù)發(fā)生奇偶校驗(yàn)錯誤,根據(jù)相關(guān)通信協(xié)議,USART硬件會自動在剛收到數(shù)據(jù)的結(jié)尾處強(qiáng)行拉低數(shù)據(jù)線一個時間段告知智能卡控制器,表示USART接收到的數(shù)據(jù)奇偶校驗(yàn)有錯,期待數(shù)據(jù)重發(fā)。


他發(fā)現(xiàn),當(dāng)UART從智能卡接收數(shù)據(jù)遇到奇偶校驗(yàn)出錯時,的確可以從硬件線路上觀測到數(shù)據(jù)的重發(fā)。可他的軟件接收代碼里卻沒法分辨數(shù)據(jù)正誤,也就是說不管是否發(fā)生校驗(yàn)錯誤,一律當(dāng)作正確的數(shù)據(jù)接收了進(jìn)來。他覺得甚為奇怪。

重點(diǎn)懷疑代碼問題,查看其相關(guān)代碼,他的數(shù)據(jù)接收流程大致是這樣的:

先檢測到USART_SR寄存器中的RXNE為1;然后從USAR_DR寄存器讀取數(shù)據(jù);再接著檢測USART_SR寄存器中的校驗(yàn)出錯位PE位是否為1,如果是1則丟棄剛才收到的數(shù)據(jù)。咋看上去,貌似沒啥問題。
如果查看STM32相關(guān)芯片的參考手冊就會發(fā)現(xiàn),通過對USART_SR的讀和接著對USART_DR的讀操作序列會導(dǎo)致對RXNE和PE位的清零。


既然這樣,按照該客戶的做法,先讀SR,然后讀DR。這個連續(xù)操作之后已經(jīng)就將RXNE和PE清零了,若再來讀PE,永遠(yuǎn)讀不到它為1的時候,即發(fā)現(xiàn)不了校驗(yàn)出錯的情況,自然導(dǎo)致數(shù)據(jù)全部被當(dāng)做正確的收納了。


所以,他的接收代碼需要稍微調(diào)整下,先檢查到RXNE為1后,接著檢查PE是否為1,根據(jù)PE是否為1 來決定從DR中讀得數(shù)據(jù)的取舍并完成對PE和RXNE的清零。


STM32的寄存器中,尤其是那些狀態(tài)寄存器的部分狀態(tài)標(biāo)志的置位和清零并不一定是簡單地、對應(yīng)地直接置1寫0。比方有些寄存器位的清零是對相關(guān)寄存器位寫1;有些寄存器位的清零則個軟件操作序列。比方STM32F4/STM32F1系列中USART的PE位、ORE位就是通過軟件操作序列實(shí)現(xiàn)清零。STM32產(chǎn)品線眾多,即使相同外設(shè)的寄存器不同系列間的操作可能略有差異。比如這里談到的USART的PE位、ORE位,在STM32F0系列里是可以通過軟件對相關(guān)寄存器位寫1達(dá)到對其清零的目的,此時無需軟件操作序列。


當(dāng)然,如果你使用ST官方的參考庫函數(shù)的話,有些細(xì)節(jié)可能感受不到。開發(fā)過程中在具體使用到某些并不熟悉的寄存器位時,適當(dāng)?shù)睾藢ο率謨酝莻不錯的舉動。有時一個無意的想當(dāng)然的舉動可能會浪費(fèi)很多時間和精力。


簡單問題,分享出來,互為提醒。其實(shí),開發(fā)過程中很多折騰人的地方往往就是些小細(xì)節(jié)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 羞羞的视频在线 | 黄色毛片在线播放 | 色五月激情五月 | 中日韩欧美一级片 | 成人久久 | 午夜寂寞福利视频 | 一级毛片,一级毛片 | 国产美女福利在线观看 | 成人国产精品久久 | 国产精品无码久久久久 | a黄毛片| 成人免费在线小视频 | 久久精品亚洲 | 欧美性tv | 日本一区二区高清不卡 | 91亚洲精品在线 | 国产精品久久久久久 | 99视频免费在线观看 | 四虎成人av| 欧美一区二区三区在线免费观看 | 91精品久久久久久久 | 日韩和的一区二区 | 九九热精品在线 | 久久天堂 | 欧美日韩精品一区二区 | 亚洲香蕉在线视频 | 欧美激情在线精品一区二区三区 | 在线视频国产一区 | 女生羞羞视频 | 日韩在线小视频 | 黄色免费网址大全 | 午夜免费在线 | 久久久久久国产免费视网址 | 亚洲成av人片在线观看无码 | 午夜电影合集 | 国产毛片久久久久久久久春天 | 亚洲高清av| 色欧美片视频在线观看 | 中文字幕在线不卡播放 | 亚洲国产精品99久久久久久久久 | 精品一区二区av |