STM32串口中斷應用實例
本文將介紹如何使用STM32F4的串口接收中斷,通過串口助手模擬上位機發送指令、STM32F4串口中斷接收到指令后根據指令選擇開關LED小燈。
1.運用到的資源、工具:
1.1開發板芯片STM32F407,USART3串口驅動電路、LED驅動電路
1.3輔助工具:STM32CubeMX
2.硬件設計
2.1原理圖
3.軟件設計
3.1功能架構:串口調試助手向USART3發送1時,使LED1點亮; 發送0時,使LED1熄滅; 串口接收使用接收中斷來提高程序運行時的效率、避免程序不斷輪詢查看串口是否接收到1或0的指令
3.2STM32cubeMX配置工程文件:
將USART3使能選擇異步通信、在NVIC中使能USART3的中斷功能
將PF10設為GPIO_OUTPUT
4.代碼實現
4.1printf輸出重定向,使得打印信息通過USART3打印到串口助手
int fputc(int ch, FILE *p)
{
while(!(USART3->SR & (1 << 7)));
USART3->DR = ch;
return ch;
}
4.2重定義串口中斷接收完成回調函數
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的點亮熄滅
#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)
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
STM32
+關注
關注
2270文章
10901瀏覽量
356178 -
中斷
+關注
關注
5文章
898瀏覽量
41513 -
串口
+關注
關注
14文章
1555瀏覽量
76547 -
開發板
+關注
關注
25文章
5058瀏覽量
97532 -
stm32cubemx
+關注
關注
5文章
283瀏覽量
14814
發布評論請先 登錄
相關推薦
STM32串口通訊——中斷方式
一、簡介在上一次我們學習了如何使用查詢的方式進行串口通訊——發送數據,以及中斷的方式,在本次我們使用中斷來進行串口通訊。可以參考以前的博客:串口
發表于 12-07 09:51
?27次下載
STM32使用CubeMAX配置的串口中斷接收方法
STM32使用CubeMAX配置的串口中斷接收方法目錄1.定位串口中斷發生的地方2.處理串口中斷接收的流程是:(1)初始化串口(2)在mai
發表于 12-14 18:45
?28次下載
STM32F407串口中斷配置
花費了很久,發現用庫函數去訪問發送完成和接收完成的標志位會出問題,改成了直接訪問寄存器對應的位,終于實現串口中斷的通信。至于為什么庫函數不行,lz還沒有發現原因。 串口中斷適合用于發送數據較少的情況
發表于 12-24 18:48
?1次下載
STM32f103------串口中斷及其配置
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔STM32f103------串口中斷及其配置使能串口時鐘和GPIO時鐘配置GPIO(TX、RX)配置串口開啟
發表于 12-27 19:30
?22次下載
STM32CubeMX-串口中斷實驗
文章目錄STM32CubeMX筆記-串行口中斷接收一、初始準備1.硬件平臺2.軟件平臺二、操作步驟1.CubeMX生成初始化代碼2.Keil編寫串口中斷回調函數3.程序下載,觀察現象三、源碼倉庫
發表于 01-14 10:53
?4次下載
評論