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
+关注
关注
2272文章
10923浏览量
357423 -
中断
+关注
关注
5文章
900浏览量
41729 -
串口
+关注
关注
14文章
1557浏览量
76997 -
开发板
+关注
关注
25文章
5121浏览量
98130 -
stm32cubemx
+关注
关注
5文章
284浏览量
14981
发布评论请先 登录
相关推荐
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次下载
串口中断是内部中断还是外部中断,串口中断是怎么触发的
串口中断通常被视为外部中断。虽然串口控制器(如USART、UART等)可能集成在微控制器或处理器的内部,但从中断的角度来看,串口中断是由处理
评论