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
+关注
关注
2240文章
10674浏览量
348846 -
中断
+关注
关注
5文章
884浏览量
41028 -
串口
+关注
关注
14文章
1484浏览量
74525 -
开发板
+关注
关注
25文章
4436浏览量
94057 -
stm32cubemx
+关注
关注
5文章
260浏览量
14448
发布评论请先 登录
相关推荐
STM32CubeMX串口中断模式收发数据
. 串口中断函数使用实例四. HAL库中的串口相关源码介绍环境:开发板:STM32F4探索者(正点原子)一. 在STM32CubeMX 图形
发表于 08-13 08:34
STM32串口中断、DMA接收的几点注意地方 精选资料分享
STM32串口中断、DMA接收的几点注意地方https://tieba.baidu.com/p/5978431198?red_tag=1717231177&traceid=这个文章棒今天写点
发表于 08-16 08:25
STM32使用CubeMAX配置的串口中断接收方法
STM32使用CubeMAX配置的串口中断接收方法目录1.定位串口中断发生的地方2.处理串口中断接收的流程是:(1)初始化串口(2)在mai
发表于 12-14 18:45
•28次下载
STM32CubeMX-串口中断实验
文章目录STM32CubeMX笔记-串行口中断接收一、初始准备1.硬件平台2.软件平台二、操作步骤1.CubeMX生成初始化代码2.Keil编写串口中断回调函数3.程序下载,观察现象三、源码仓库
发表于 01-14 10:53
•4次下载
评论