日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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>
  • 使用串口助手發(fā)送字符同步線程A。(一般情況下,線程A處于阻塞態(tài)。一直等待,直到串口中斷回調(diào)函數(shù)ISR向消息隊列發(fā)送字符時,才進行運行態(tài)。)
  • 三、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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。