色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HAL_UART_Transmit阻塞時會影響串口中斷接收嗎?

冬至子 ? 來源:一起學習軟硬件設計 ? 作者:哼唧狗 ? 2023-10-26 14:24 ? 次閱讀

問題描述:

最近項目里使用了兩路串口透傳數據,串口3中斷接收數據,組包后通過串口1阻塞發送出去。組完包的數據近800個字符,哼唧狗使用HAL_UART_Transmit()函數進行發送,理論和實際驗證發送完一包數據115200波特率下需要耗時近70ms。

哼唧狗一直有個疑問,在串口1發送的70ms內,串口3的中斷接收會不會受影響呢?

這個疑問困擾了自己好幾天了,由于自己對串口理解不深,今晚實在忍不住就去芯片之家群里問大牛們去了。

得到的一個大神回復是這樣的:

圖片

** 下面是測試過程分享。**

串口1阻塞發送800個字符,然后串口3中斷接收,每次接收到一個字符變量加1,并在串口中斷回調函數內打印該變量值。通過串口助手給串口3發送數據,每次發送一個字符。看發送過程中是否會受影響。

main函數中:

while (1)
    {
        //800個字符 理論串口發送70ms
        sprintf(buf,"%s","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn");      
        while(1)
        {
            HAL_UART_Transmit(&huart1, (uint8_t *)buf, strlen(buf),1000);
            //加一個指示燈翻轉
            HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
        }
    }

串口1中斷回調函數:

int conut = 0;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart == &huart3)
    {
        conut = conut + 1;
        printf("conut = %d n ",conut);
        HAL_UART_Receive_IT(&huart3, (uint8_t *)Rx2478Tmp, RxDataTmp);
    }
}

串口助手模擬發送:

圖片

測試結果:

不受影響。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接收機
    +關注

    關注

    8

    文章

    1182

    瀏覽量

    53525
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11582
  • 串口中斷
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13935
  • Uart串口
    +關注

    關注

    0

    文章

    29

    瀏覽量

    6830
  • HAL庫
    +關注

    關注

    1

    文章

    121

    瀏覽量

    6322
收藏 人收藏

    評論

    相關推薦

    HAL_UART_Receive_IT,HAL_UART_Transmit不能正常接收數據的原因?

    _Receive_IT 失敗后不能再開中斷。 stm32f103 HAL 庫的串口中斷方式接收數據的函數HAL_UART_Receive_
    發表于 04-03 07:22

    STM32G030F6用串口中斷函數接收數據,發送數據就死機怎么解決?

    調用HAL_UART_Transmit_IT往外發也回導致死機。在網上看了很多的串口案例,都是這么實現的,不清楚為啥我的平臺會一觸發串口中斷就死機,希望有大俠可以幫忙解答!! 下面是用
    發表于 07-11 06:44

    z2:采用STM32cubeMX來配置串口接收中斷

    ,0x65,0x01,0x02,0x03,0x04,0x05,0x06};uint8_t RxData[8];2、如果是輪詢方式發送數據,采用HAL_UART_Transmit(&huart1, TxData,8,10);如果是中斷方式
    發表于 07-24 10:27

    cubemx配置的串口中斷發送HAL_UART_Transmit_IT不行

    為何HAL_UART_Transmit可發送,改成HAL_UART_Transmit_IT就不行了cube配置的stm32f407系統其他代碼均一樣while(HAL
    發表于 12-10 08:39

    請問怎么用HAL_UART_Transmit發送數值型數據?

    如何用HAL_UART_Transmit 發送數值型數據?我看例程,都是發送字符型數據的uint8_t TxData[10]= "01234abcde"
    發表于 02-19 07:40

    HAL_UART_Receive_IT和HAL_UART_Transmit一起用進不到中斷

    不到中斷里。這是為什么呢?最開始我以為是因為波特率低,我設置的最大發送時間太短導致的。后來改長時間后,發現依然有幾率出現這樣的問題。請問HAL_UART_Transmit是否會造成了串口被鎖,或者處于繁忙狀態,是否能夠恢復?或者
    發表于 03-14 08:38

    STM32的串口接收機制的主要流程有哪些

    STM32的串口接收機制??與阻塞式發送函數HAL_UART_Transmit配套,有個阻塞式的接收
    發表于 01-06 07:45

    HAL_UART_Transmit函數底層實現過程

    目錄底層代碼代碼實現講解代碼細節底層代碼HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData
    發表于 02-22 07:53

    如果TX未完成時RX,HAL_UART_Transmit() 和 HAL_UART_Receive_IT() 失敗怎么處理?

    我曾經使用 HAL_UART_Transmit() 將 AT 命令發送到模塊:void send_uart(char * buffer){uint16_t buffer_size = strlen
    發表于 12-02 07:36

    如何在使用HAL_UART_Transmit_IT時僅處理UART RX中斷事件?

    使用 HAL_UART_Transmit 傳輸數據時,我可以在 IRQHandler 中很好地處理接收到的字符。但是當我使用 HAL_UART_Transmit_IT 時,我的 IRQHandler 會為我傳輸的每個
    發表于 12-28 07:40

    HAL_UART_Transmit_IT阻塞如何立即返回?

    _StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef * huart, uint8_t * pData, uint16_t Size)該函數由 CubeIDE 生成。事實證明,此調用會
    發表于 01-10 08:35

    STM32使用CubeMAX配置的串口中斷接收方法

    STM32使用CubeMAX配置的串口中斷接收方法目錄1.定位串口中斷發生的地方2.處理串口中斷接收的流程是:(1)初始化
    發表于 12-14 18:45 ?28次下載
    STM32使用CubeMAX配置的<b class='flag-5'>串口中斷</b><b class='flag-5'>接收</b>方法

    【STM32 HALUART串口通訊

    完成,則不再接收數據到指定緩沖區,返回超時標志(HAL_TIMEOUT)發送函數:HAL_UART_Transmit()接收函數:HAL_UART
    發表于 12-24 18:44 ?5次下載
    【STM32 <b class='flag-5'>HAL</b>】<b class='flag-5'>UART</b><b class='flag-5'>串口</b>通訊

    STM32 HALUART 串口讀寫功能筆記

    STM32L0 HALUART 串口讀寫功能串口發送功能:uint8_t TxData[10]= “01234abcde”;HAL_UART_T
    發表于 12-27 19:11 ?13次下載
    STM32 <b class='flag-5'>HAL</b>庫 <b class='flag-5'>UART</b> <b class='flag-5'>串口</b>讀寫功能筆記

    HAL_UART_Transmit函數底層實現

    目錄底層代碼代碼實現講解代碼細節底層代碼HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData
    發表于 12-27 19:24 ?8次下載
    <b class='flag-5'>HAL_UART_Transmit</b>函數底層實現
    主站蜘蛛池模板: gogo免费在线观看| 韩国电影real在线观看完整版| 动漫美女人物被黄漫在线看| 国产成人小视频在线观看| 精品视频免费在线观看| 男男高h浪荡受h| 无码乱人伦一区二区亚洲一| 正能量不良WWW免费窗口| 91欧美秘密入口| 国产CHINESE HD精品| 精品国产三级a| 欧美一道本一区二区三区| 亚洲福利视频导航| 97国产精品视频在线观看| 大学生一级毛片免费看| 精品一区二区三区色花堂| 青青草在现线免费观看| 亚洲视频在线观| 成人a视频片在线观看免费| 九色PORNY真实丨首页| 日本特黄网站| 在线观看国产区| 国产精品久久久久激情影院| 毛片免费观看的视频| 午夜福利理论片高清在线| 99国内偷揿国产精品人妻| 国模精品一区二区三区视频| 欧美亚洲国产免费高清视频 | 免费国产综合视频在线看| 日本久久网站| 亚洲一区自拍高清亚洲精品| 给个男人都懂的网址2019| 免费看a毛片| 亚洲综合AV在线在线播放| 国产不卡视频在线观看| 欧美精品久久久久久久久大尺度| 永久免费看mv网站入口| 国内外成人免费在线视频| 乌克兰xxxxx| 妇少水多18P蜜泬17P亚洲乱| 强姧伦久久久久久久久|