RM新时代网站-首页

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

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

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

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

CHANBAEK ? 來源:頭條號(hào)秋天滴風(fēng) ? 作者:頭條號(hào)秋天滴風(fēng) ? 2023-04-20 11:45 ? 次閱讀

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

本文將介紹如何使用STM32F4的串口接收中斷,通過串口助手模擬上位機(jī)發(fā)送指令、STM32F4串口中斷接收到指令后根據(jù)指令選擇開關(guān)LED小燈。

1.運(yùn)用到的資源、工具:

1.1開發(fā)板芯片STM32F407,USART3串口驅(qū)動(dòng)電路、LED驅(qū)動(dòng)電路

1.2編譯工具:MDK-ARM V5(keil5)

1.3輔助工具:STM32CubeMX

2.硬件設(shè)計(jì)

2.1原理圖

3.軟件設(shè)計(jì)

3.1功能架構(gòu):串口調(diào)試助手向USART3發(fā)送1時(shí),使LED1點(diǎn)亮; 發(fā)送0時(shí),使LED1熄滅; 串口接收使用接收中斷來提高程序運(yùn)行時(shí)的效率、避免程序不斷輪詢查看串口是否接收到1或0的指令

3.2STM32cubeMX配置工程文件:

將USART3使能選擇異步通信、在NVIC中使能USART3的中斷功能

將PF10設(shè)為GPIO_OUTPUT

4.代碼實(shí)現(xiàn)

4.1printf輸出重定向,使得打印信息通過USART3打印到串口助手

int fputc(int ch, FILE *p)
{
while(!(USART3->SR & (1 << 7)));
USART3->DR = ch;
return ch;
}

4.2重定義串口中斷接收完成回調(diào)函數(shù)

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance == USART3)
	{
		if(RED == 1)
		{
			LED1_ON;
			printf("LED1 ON RED= %d\\n", RED);
		}
		else
		{
			LED1_OFF;
			printf("LED1 OFF RED= %d\\n", RED);
		}
	}
}

4.3宏定義 LED1的點(diǎn)亮熄滅

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

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355721
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

    41470
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1551

    瀏覽量

    76421
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97371
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    283

    瀏覽量

    14791
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于stm32串口中斷的理解

    最近在調(diào)試stm32串口中斷,寫了一些程序,還請(qǐng)大家多多指教。
    發(fā)表于 06-26 14:23

    如何去實(shí)現(xiàn)stm32串口中斷printf函數(shù)呢

    實(shí)現(xiàn)printf就可以在串口助手里顯示所打印的字符了嗎?如何去實(shí)現(xiàn)stm32串口中斷printf函數(shù)呢?
    發(fā)表于 11-17 07:33

    萌新求助,求STM32串口中斷實(shí)例

    萌新求助,求STM32串口中斷實(shí)例
    發(fā)表于 11-18 06:08

    STM32F407串口中斷如何配置?

    STM32F407串口中斷如何配置?
    發(fā)表于 02-18 06:43

    15W4K-4串口中斷收發(fā)程序免費(fèi)下載

    51黑論壇_15W4K-4串口中斷收發(fā)
    發(fā)表于 04-15 08:00 ?14次下載
    15W4K-4<b class='flag-5'>串口中斷</b>收發(fā)程序免費(fèi)下載

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

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

    STM32串口通訊——中斷方式

    一、簡(jiǎn)介在上一次我們學(xué)習(xí)了如何使用查詢的方式進(jìn)行串口通訊——發(fā)送數(shù)據(jù),以及中斷的方式,在本次我們使用中斷來進(jìn)行串口通訊??梢詤⒖家郧暗牟┛停?b class='flag-5'>串口
    發(fā)表于 12-07 09:51 ?27次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊——<b class='flag-5'>中斷</b>方式

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

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

    STM32F407串口中斷配置

    花費(fèi)了很久,發(fā)現(xiàn)用庫(kù)函數(shù)去訪問發(fā)送完成和接收完成的標(biāo)志位會(huì)出問題,改成了直接訪問寄存器對(duì)應(yīng)的位,終于實(shí)現(xiàn)串口中斷的通信。至于為什么庫(kù)函數(shù)不行,lz還沒有發(fā)現(xiàn)原因。 串口中斷適合用于發(fā)送數(shù)據(jù)較少的情況
    發(fā)表于 12-24 18:48 ?1次下載
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>串口中斷</b>配置

    STM32F407串口空閑中斷+DMA

    STM32F407串口空閑中斷+DMA空閑中斷,DMA簡(jiǎn)介空閑中斷區(qū)別于普通串口中斷的每一字節(jié)數(shù)
    發(fā)表于 12-24 18:50 ?29次下載
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>串口</b>空閑<b class='flag-5'>中斷</b>+DMA

    STM32f103------串口中斷及其配置

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔STM32f103------串口中斷及其配置使能串口時(shí)鐘和GPIO時(shí)鐘配置GPIO(TX、RX)配置串口開啟
    發(fā)表于 12-27 19:30 ?22次下載
    <b class='flag-5'>STM32</b>f103------<b class='flag-5'>串口中斷</b>及其配置

    STM32CubeMX-串口中斷實(shí)驗(yàn)

    文章目錄STM32CubeMX筆記-串行口中斷接收一、初始準(zhǔn)備1.硬件平臺(tái)2.軟件平臺(tái)二、操作步驟1.CubeMX生成初始化代碼2.Keil編寫串口中斷回調(diào)函數(shù)3.程序下載,觀察現(xiàn)象三、源碼倉(cāng)庫(kù)
    發(fā)表于 01-14 10:53 ?4次下載
    <b class='flag-5'>STM32</b>CubeMX-<b class='flag-5'>串口中斷</b>實(shí)驗(yàn)

    STM32G0開發(fā)筆記:串口中斷的使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為串口中斷的使用。
    的頭像 發(fā)表于 01-17 10:46 ?2342次閱讀

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

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

    STM32串口中斷接收不定長(zhǎng)報(bào)文介紹

    本項(xiàng)目中,需要使用STM32的USART6串口與FPGA板(下位機(jī))通信,需要發(fā)送和接收數(shù)據(jù),有報(bào)文應(yīng)答機(jī)制。
    的頭像 發(fā)表于 10-26 11:01 ?1068次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口中斷</b>接收不定長(zhǎng)報(bào)文介紹
    RM新时代网站-首页