本來UART的調試是非常簡單的,但是在STM8上折騰了好幾天,在此記錄一下,希望遇到相同問題的朋友能夠不折騰,工作順利,生活開心!
問題描述:
使用STM8的UART1,波特率9600,發送中斷關閉,接收中斷打開。接收單字節,沒有問題。接收多字節,接收數據不完整,而且每次丟失的字節個數固定,比如發送17個字節,每次都只能接收到到15個字節。
折騰過程:
1.按照網友說的如下,結果還是出現丟失數據。
if(UART1_GetITStatus(UART1_IT_RXNE) != RESET)
{
temp = UART1_ReceiveData8();
}
2.添加處理過載時發生中斷的處理,任然還是出現丟失數據。
解決辦法:
先讀取數據,再清理中斷。完事就是這么簡單。
void MCU_UartInterruptISR(void)
{
UARTRxData.rxData[UARTRxData.nBytes] = UART1_ReceiveData8();
UART1_ClearFlag(UART1_FLAG_RXNE);
}
上一篇:基于IDA7.2的STM8處理器插件編寫
下一篇:IAR調試查看寄存器方法 STM8
推薦閱讀
史海拾趣
背景:作為電子顯示領域的佼佼者,Hantronix不僅關注自身的發展,還積極履行社會責任,為行業的進步和發展做出貢獻。
發展:Hantronix通過技術創新和產品升級,推動了電子顯示技術的進步和應用范圍的擴大。同時,公司還積極參與行業標準的制定和推廣工作,為行業的規范化、標準化發展貢獻了自己的力量。此外,Hantronix還注重人才培養和團隊建設,為行業培養了一大批高素質的專業人才。
以上五個故事雖然基于概括性描述,但均反映了Hantronix公司在電子行業中的發展歷程、技術創新、市場拓展、品質保證以及行業影響等方面的實際情況。
在追求經濟效益的同時,固得沃克也高度重視環境保護和社會責任。公司所有產品均通過了美國UL、SGS歐盟ROHS及REACH環保認證,確保產品符合國際環保標準。這一舉措不僅提升了公司的品牌形象,也為公司拓展國際市場提供了有力支持。近年來,固得沃克的產品已廣泛應用于汽車電子、新能源、綠色照明等多個領域,并遠銷海外多個國家和地區。
深圳市固得沃克電子有限公司(GOODWORK)的故事始于2004年,當時公司正式成立,專注于半導體分立器件的研發、生產和銷售。公司總部設在深圳,并創立了自主品牌“GK”。這一時期的固得沃克,憑借對技術的執著追求和對市場的敏銳洞察,逐步在電子行業站穩腳跟。公司初期雖面臨諸多挑戰,但憑借團隊的堅持和創新精神,逐漸贏得了客戶的信賴,為后續的快速發展奠定了堅實基礎。
深圳市固得沃克電子有限公司(GOODWORK)的故事始于2004年,當時公司正式成立,專注于半導體分立器件的研發、生產和銷售。公司總部設在深圳,并創立了自主品牌“GK”。這一時期的固得沃克,憑借對技術的執著追求和對市場的敏銳洞察,逐步在電子行業站穩腳跟。公司初期雖面臨諸多挑戰,但憑借團隊的堅持和創新精神,逐漸贏得了客戶的信賴,為后續的快速發展奠定了堅實基礎。
隨著云計算、大數據等技術的興起,傳統EDA行業面臨著前所未有的挑戰。為了應對這些挑戰,EDAL公司積極轉型升級,將云計算、大數據等技術與EDA工具相結合,推出了更加高效、智能的云端EDA服務。這一創新的服務模式不僅提升了客戶的設計效率,還降低了成本,贏得了市場的廣泛認可。
EDAL公司成立于XXXX年,由一群富有遠見和創新精神的電子工程師創立。公司初期專注于電子設計自動化(EDA)工具的研發,致力于提升集成電路設計的效率和質量。EDAL公司憑借其獨特的算法和高效的設計工具,在EDA領域嶄露頭角,吸引了眾多客戶的關注。
新一代 FPGA的速度變得越來越快,密度變得越來越高,邏輯資源也越來越多。那么如何才能確保功耗不隨這些一起增加呢?很多設計抉擇可以影響系統的功耗,這些抉擇包括從顯見的器件選擇到細小的基于使用頻率的狀態機值的選擇等。 為了更好地理解 ...… 查看全部問答∨ |
replyreload += \',\' + 305362;在一個暴風雨的晚上,你開著一輛車,經過一個車站。 有三個人正在焦急的等公共汽車。 一個是快要臨死的老人,他需要馬上去醫院。 一個是醫生,他曾救過你的命,你做夢都想報答他。 還有一個女人/男人,她/他是你 ...… 查看全部問答∨ |
3.運行ltibcd到ltib安裝到的目錄,這個是在上面install過程中讓你選擇的。然后:./ltib即可運行,第一次運行,實際上就是啟動build image的工作,最后會調用編譯器等工具連構建出最終內核image和文件系統image。這個過程可能出現錯誤(但我沒碰到) ...… 查看全部問答∨ |
|
WinCE中我用Create創建了一個子窗口,但是我在資源中無論怎樣改變子窗口的大小,最后我用GetWindowRect函數取得的值窗口坐標及大小都是一個固定值,似乎并沒有對它產生影響,不知道為什么,請問怎樣才能用GetWindowRect得到正確的窗口大小?… 查看全部問答∨ |
在EW8051的工程中,有兩個文件dmaAlloCannel.c和IRWPAN.h需要用到hal.h中的函數,我已經在dmaAlloCannel.c和IRWPAN.h中加了頭文件include "hal.h"。可是在編譯是還是報這些函數未定義。 請問一下究竟哪 ...… 查看全部問答∨ |
最近在悉心研究Stellaris 8000系列,依賴著自己過往丁點的單片機經驗,但是還是學的暈暈乎乎。于是萌生了一個想法,還請有經驗的朋友多多幫忙 :何不從技術角度分享下:從其他單片機(51、AVR、STM32、PIC等)轉變到Stellaris的方式、方法。這樣為 ...… 查看全部問答∨ |