總網頁瀏覽量

2021年5月21日 星期五

【課程內容介紹】【STM32】STM32 UART基礎教學之部份簡介(主要以簡易的Receive data應用為範例作教學)

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

STM32_UART基礎教學之部份簡介(主要以簡易的Receive data應用為範例作教學)。

課程會介紹關於UART的基礎使用方式,包含Polling(輪詢)和interrupt(中斷)機制的差異和基本使用觀念。

而在中斷的方面,

下列影片1的情況是因為我們 沒有 讓CPU或DMA去讀(read) Receive Data Register之中的接收資料,也沒有去對RXNE flag寫0,所以RXNE flag沒有被清除,導致UART ISR flow不斷地被觸發。

影片1

而影片2的情況是因為我們讓CPU從Receive Data Register把資料給讀走(在ISR flow中呼叫使用了HAL_UART_Receive),所以RXNE flag被清除,所以每當UART收到來自PC端(中間串接UART轉USB的module)的字元資料(character byte data),UART ISR flow才會被觸發。

影片2

另外,在課程中也會提及blocking mode API(以HAL_UART_Receive為例) 和 non-blocking mode API(以HAL_UART_Receive_IT為例)的差異,如影片3。

影片3

影片中使用的STM32板子型號是STM32F407G-DISC1 (STM32F4-Discovery),板子上的主MCU晶片型號是STM32F407VGT6(ARM Cortex-M4 CPU based)。

另外關於一些在ST官方手冊[1]中相關的部分:

ST RM0090官方手冊[1]



ST RM0090官方手冊[1]

題外話,注意這裡的STM32 MCU通訊功能周邊裝置的blocking/non-blocking mode API,和作業系統(如Linux)的blocking/non-blocking I/O model的意思(實際狀況)不太一樣,勿混淆。

也可於下方連結進去我於facebook的公開貼文中觀看,謝謝。



Ref: 

[1] STM32 RM0090 Reference manual Rev 19: https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf


--------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2021年5月20日 星期四

【STM32】記錄今天看到的STM32 MCU RM0090 Reference manual Rev 19的973~974頁 USART Receiver(章節30.3.3)的一個寫法上的小問題

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

STM32 MCU的多數手冊都寫得不錯,但偶爾似乎還是難免會有些小問題。

今天下午看到一個關於STM32 MCU RM0090 Reference manual(STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced Arm®-based 32-bit MCUs)  Rev 19的973~974頁 USART Receiver(章節30.3.3)的Start bit detection和Character reception這兩個連續的小節的內容中,對於RXNE flag被set(被設立為1)的條件的條件方面的文意內容的矛盾。

下列兩張圖皆為該ST手冊[1]的內容,請注意被紅線框起的部分:

[1] 973頁




[1] 974頁

[1] 1006頁



後來看到ST論壇也曾有外國人提出來討論。連結網址: https://community.st.com/s/question/0D50X00009XkhmtSAB/rxne-irq-generation


Ref: 

[1] STM32 RM0090 Reference manual Rev 19: https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

--------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2021年5月13日 星期四

小時候不喜歡填鴨教育和考試,絕對不代表不聰明。絕對不要放棄自己

個人簡歷: https://sites.google.com/view/wenliangsun/

我個人很喜歡做專業領域的研究(產業技術和學術)

但是我也是差點被教育體系給弄到不可能像是有今天這樣接觸專業領域研究的機會,

很感謝高三在統一補習班的電子學老師和基本電學老師、高二時期學校的數位邏輯(數位電路)老師。

回想起來,

無論是國小、國中、高職時期,

其實我有很多不喜歡台灣傳統填鴨教育制度和考試的同學,

是真的都很聰明、相當具有某些方面的才能和天賦,

只是台灣的教育基本上完全不重視學生興趣啟發養成發展和個人特質,只知道不斷地對學生進行填鴨式教育。

是真的耽誤了蠻多人,讓太多人被放棄。

埋沒了很多原本在興趣的領域會發揮得很好的天才。

我建議任何這樣遭受狀況的學生都不要放棄,有時候是某些老師和家長們的視野狹隘,而不是學生的資質差。

台灣教育體制的標準本來就有些問題,自己不要放棄,多客觀思考分析,認清楚狀況,堅持正途、找出自己有熱情的方向,我相信早晚會找到適合自己發展的路。