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
+關注
關注
2289文章
11012瀏覽量
362365 -
中斷
+關注
關注
5文章
904瀏覽量
42522 -
串口
+關注
關注
14文章
1583瀏覽量
78636 -
開發板
+關注
關注
25文章
5515瀏覽量
102262 -
stm32cubemx
+關注
關注
5文章
286瀏覽量
15975
發布評論請先 登錄
STM32串口通訊——中斷方式

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

STM32F407串口中斷配置

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

STM32CubeMX-串口中斷實驗

評論