RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
生活随笔
收集整理的這篇文章主要介紹了
RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 一、前言
- 二、實驗?zāi)康?/li>
- 三、API
- 3.2、osMessageQueueGet
- 四、代碼
- 4.1、main.h
- 4.2、stm32f1xx.it.c
- 4.3、main.c
- 五、Event Recorder調(diào)試
- 5.1、使用串口助手發(fā)送字符給單片機
一、前言
在實際的項目上,消息隊列主要用于線程同步。所謂線程同步就是一個線程或者ISR中斷往某個消息隊列發(fā)送一個消息后,觸發(fā)調(diào)度器將另外一個線程(等待這個消息隊列的線程)馬上從阻塞態(tài)切換至運行態(tài),讀取消息與解析消息。線程標(biāo)志組與事件標(biāo)志組也可以用于線程同步,但是它們傳遞的消息只能是一個uint32的變量,所以傳遞的內(nèi)容非常有限。
UART中斷與CAN中斷等ISR,我都會用消息隊列同步一個線程來處理消息隊列里的消息。這樣做的好處是中斷回調(diào)函數(shù)里的代碼量少,執(zhí)行時間短,符合“快進快出”的原則。借助消息隊列的同步功能,讀取與處理的線程會盡快執(zhí)行。
Note:
通過消息隊列,將ISR函數(shù)與線程同步運行是精通RTOS的必修課,務(wù)必掌握!
STM32工程:
鏈接:https://pan.baidu.com/s/1h4dPUhRAxZJw9fXSrGwrzQ
提取碼:k2jk
二、實驗?zāi)康?/h1>
三、API
3.2、osMessageQueueGet
四、代碼
4.1、main.h
4.2、stm32f1xx.it.c
板子上的UART轉(zhuǎn)USB芯片連接USART1。
4.3、main.c
五、Event Recorder調(diào)試
5.1、使用串口助手發(fā)送字符給單片機
總結(jié)
以上是生活随笔為你收集整理的RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼接的html点击事情不触发,关于在vu
- 下一篇: html语言table,html中的ta