RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
文章目錄
- 一、前言
- 二、實(shí)驗(yà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ā)送字符給單片機(jī)
一、前言
在實(shí)際的項(xiàng)目上,消息隊(duì)列主要用于線程同步。所謂線程同步就是一個(gè)線程或者ISR中斷往某個(gè)消息隊(duì)列發(fā)送一個(gè)消息后,觸發(fā)調(diào)度器將另外一個(gè)線程(等待這個(gè)消息隊(duì)列的線程)馬上從阻塞態(tài)切換至運(yùn)行態(tài),讀取消息與解析消息。線程標(biāo)志組與事件標(biāo)志組也可以用于線程同步,但是它們傳遞的消息只能是一個(gè)uint32的變量,所以傳遞的內(nèi)容非常有限。
UART中斷與CAN中斷等ISR,我都會(huì)用消息隊(duì)列同步一個(gè)線程來處理消息隊(duì)列里的消息。這樣做的好處是中斷回調(diào)函數(shù)里的代碼量少,執(zhí)行時(shí)間短,符合“快進(jìn)快出”的原則。借助消息隊(duì)列的同步功能,讀取與處理的線程會(huì)盡快執(zhí)行。
Note:
通過消息隊(duì)列,將ISR函數(shù)與線程同步運(yùn)行是精通RTOS的必修課,務(wù)必掌握!
STM32工程:
鏈接:https://pan.baidu.com/s/1h4dPUhRAxZJw9fXSrGwrzQ
提取碼:k2jk
二、實(shí)驗(yàn)?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ā)送字符給單片機(jī)
總結(jié)
以上是生活随笔為你收集整理的RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼接的html点击事情不触发,关于在vu
- 下一篇: html语言table,html中的ta