精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過(guò)配置串口的接收作為中斷源

麥辣雞腿堡 ? 來(lái)源:CSDN博客 ? 作者:藕粉- ? 2023-11-10 16:33 ? 次閱讀

使用中斷

  • 通過(guò)配置串口的接收作為中斷源,開啟中斷輸出控制,配置NVIC。開啟中斷通道。
//開啟中斷輸出控制
  USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
  
  //配置NVIC
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
  NVIC_InitTypeDef NVIC_InitStruct;
  NVIC_InitStruct.NVIC_IRQChannel=USART2_IRQn;   //選擇USART2的中斷通道
  NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;    //中斷使能
  NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
  NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
  NVIC_Init(&NVIC_InitStruct);
  • 中斷服務(wù)子函數(shù)

中斷服務(wù)子函數(shù)寫好后,就可以在中斷里讀取接收到的數(shù)據(jù)了。

當(dāng)接收到數(shù)據(jù)后,觸發(fā)接收中斷,主程序暫停執(zhí)行。接收完數(shù)據(jù)后主程序回復(fù)執(zhí)行。當(dāng)接收到數(shù)據(jù)時(shí),就觸發(fā)中斷。

void USART2_IRQHandler(void)
{
  if(USART_GetITStatus(USART2,USART_IT_RXNE)==SET)   //RXNE 標(biāo)志位為1 表示可以接收數(shù)據(jù)
  {
    RX_Data=USART_ReceiveData(USART2);
    Flag=1;
    USART_ClearITPendingBit(USART2,USART_IT_RXNE);  //清除RXNE標(biāo)志位
  }
}
  • 主程序測(cè)試
uint8_t RX_Data;
uint8_t Flag;


int main()
{
    Serial_Init();
    Serial_SendByte(0x16);




    while(1)
    {
        if(Flag==1)
        {
            Serial_SendByte(RX_Data);
        }
    }
}


void USART2_IRQHandler(void)
{
    if(USART_GetITStatus(USART2,USART_IT_RXNE)==SET)   //RXNE 標(biāo)志位為1 表示可以接收數(shù)據(jù)
    {
        RX_Data=USART_ReceiveData(USART2);
        Flag=1;
        USART_ClearITPendingBit(USART2,USART_IT_RXNE);  //清除RXNE標(biāo)志位
    }
}

下圖為程序現(xiàn)象:可以看到,串口確實(shí)收到了數(shù)據(jù),只是我把接收到的數(shù)據(jù)0xFE放在了while循環(huán)里,這說(shuō)明數(shù)據(jù)接收是成功的,使用中斷是可行的。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2266

    文章

    10871

    瀏覽量

    354812
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1620

    瀏覽量

    55425
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4306

    瀏覽量

    62431
  • 中斷源
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7985
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用中斷實(shí)現(xiàn)串口不長(zhǎng)接收數(shù)據(jù)

    STM32CUBEME--2USART通過(guò)DMA方式接收不定長(zhǎng)數(shù)據(jù)概述硬件準(zhǔn)備選擇芯片型號(hào)配置時(shí)鐘配置時(shí)鐘樹
    發(fā)表于 08-11 07:07

    STM32串口中斷 DMA接收的幾點(diǎn)注意地方

    STM32串口中斷、DMA接收的幾點(diǎn)注意地方
    的頭像 發(fā)表于 03-04 13:57 ?2.1w次閱讀

    STM32 串口使用IDLE中斷+DMA接收(HAL庫(kù)函數(shù))

    STM32 串口使用IDLE中斷+DMA接收(HAL庫(kù)函數(shù))一、開發(fā)環(huán)境單片機(jī)型號(hào):STM32H743IIT6工程配置環(huán)境:STM32CubeMX 6.3.0固件庫(kù):STM32Cube
    發(fā)表于 12-02 21:06 ?41次下載
    STM32 <b class='flag-5'>串口</b>使用IDLE<b class='flag-5'>中斷</b>+DMA<b class='flag-5'>接收</b>(HAL庫(kù)函數(shù))

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

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

    STM32 HAL CubeMX 串口IDLE接收空閑中斷+DMA

    關(guān)于DMA原理部分講解,及CubeMx配置部分,請(qǐng)參考該文章【STM32】HAL庫(kù) STM32CubeMX教程十一—DMA (串口DMA發(fā)送接收)本篇文章我們僅針對(duì)例程進(jìn)行詳解剖析本篇文章提供兩種
    發(fā)表于 12-20 19:39 ?31次下載
    STM32 HAL CubeMX <b class='flag-5'>串口</b>IDLE<b class='flag-5'>接收</b>空閑<b class='flag-5'>中斷</b>+DMA

    stm32 串口接收不定長(zhǎng)度數(shù)據(jù)及黏包處理 + 串口DMA接收

    都是通過(guò)單片機(jī)的中斷機(jī)制實(shí)現(xiàn)的,stm32單片機(jī)串口接收有一個(gè)空閑中斷機(jī)制,只要我們?cè)?b class='flag-5'>配置
    發(fā)表于 12-23 19:09 ?27次下載
    stm32 <b class='flag-5'>串口</b><b class='flag-5'>接收</b>不定長(zhǎng)度數(shù)據(jù)及黏包處理 + <b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b>

    STM32—無(wú)需中斷來(lái)實(shí)現(xiàn)使用DMA接收串口數(shù)據(jù)

    本節(jié)目標(biāo):通過(guò)DMA,無(wú)需中斷,接收不定時(shí)長(zhǎng)的串口數(shù)據(jù) 描述:當(dāng)在串口多數(shù)據(jù)傳輸下,CPU會(huì)產(chǎn)生多次
    發(fā)表于 12-24 19:01 ?8次下載
    STM32—無(wú)需<b class='flag-5'>中斷</b>來(lái)實(shí)現(xiàn)使用DMA<b class='flag-5'>接收</b><b class='flag-5'>串口</b>數(shù)據(jù)

    STM32CubeMx配置DMA+串口空閑中斷+FreeRTOS,完美處理串口數(shù)據(jù)。

    作為STM32最常用的外設(shè)之一,可以說(shuō)串口用的好不好可以看出使用者有沒(méi)有深入掌握STM32的使用。常見的串口輪訓(xùn)發(fā)送+接收中斷雖然能夠應(yīng)付一
    發(fā)表于 12-24 19:11 ?52次下載
    STM32CubeMx<b class='flag-5'>配置</b>DMA+<b class='flag-5'>串口</b>空閑<b class='flag-5'>中斷</b>+FreeRTOS,完美處理<b class='flag-5'>串口</b>數(shù)據(jù)。

    串口接收中斷--并不是說(shuō)不使能串口接受中斷就無(wú)法接收數(shù)據(jù)

    并不是說(shuō)不使能串口接受中斷就無(wú)法接收數(shù)據(jù),只是為了在串口接收數(shù)據(jù)的時(shí)候防止其程序打擾串口數(shù)據(jù)的
    發(fā)表于 12-28 19:15 ?15次下載
    <b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>中斷</b>--并不是說(shuō)不使能<b class='flag-5'>串口</b>接受<b class='flag-5'>中斷</b>就無(wú)法<b class='flag-5'>接收</b>數(shù)據(jù)

    STM32串口中斷應(yīng)用實(shí)例

    本文將介紹如何使用STM32F4的串口接收中斷,通過(guò)串口助手模擬上位機(jī)發(fā)送指令、STM32F4串口中斷
    的頭像 發(fā)表于 04-20 11:45 ?2275次閱讀
    STM32<b class='flag-5'>串口中斷</b>應(yīng)用實(shí)例

    LPC5500_SDK例程:串口DMA發(fā)送+中斷接收

    LPC5500_SDK例程:串口DMA發(fā)送+中斷接收
    的頭像 發(fā)表于 10-30 16:59 ?1040次閱讀
    LPC5500_SDK例程:<b class='flag-5'>串口</b>DMA發(fā)送+<b class='flag-5'>中斷</b><b class='flag-5'>接收</b>

    STM32串口中斷及DMA接收常見的幾個(gè)問(wèn)題

    STM32串口中斷及DMA接收常見的幾個(gè)問(wèn)題
    的頭像 發(fā)表于 10-26 16:41 ?3419次閱讀
    STM32<b class='flag-5'>串口中斷</b>及DMA<b class='flag-5'>接收</b>常見的幾個(gè)問(wèn)題

    HAL_UART_Transmit阻塞時(shí)會(huì)影響串口中斷接收嗎?

    最近項(xiàng)目里使用了兩路串口透?jìng)鲾?shù)據(jù),串口3中斷接收數(shù)據(jù),組包后通過(guò)串口1阻塞發(fā)送出去。
    的頭像 發(fā)表于 10-26 14:24 ?1800次閱讀
    HAL_UART_Transmit阻塞時(shí)會(huì)影響<b class='flag-5'>串口中斷</b><b class='flag-5'>接收</b>嗎?

    串口接收數(shù)據(jù)的兩種方式是什么

    上方是發(fā)送數(shù)據(jù)的例子,那么串口接收又該如何配置,又要在串口發(fā)送的例子上做哪些更改呢? 這里我們可以通過(guò)查詢或者
    的頭像 發(fā)表于 11-10 16:20 ?2223次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>接收</b>數(shù)據(jù)的兩種方式是什么

    stm32串口接收中斷觸發(fā)原理

    配置串口接收中斷使能:在初始化串口時(shí),需要設(shè)置相應(yīng)的控制寄存器來(lái)使能串口
    發(fā)表于 01-17 15:42 ?7880次閱讀
    stm32<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>中斷</b>觸發(fā)原理