STM32CubeMX— 配置串口1 接收中断

发布者:浊酒最新更新时间:2020-04-27 来源: eefocus关键字:STM32CubeMX  配置串口1  接收中断 手机看文章 扫描二维码
随时随地手机看文章

实验操作

1、打开cubemax ,芯片选取。

我们选取STM32F103RCt6 (根据实际情况选择),LQFP64封装的。然后鼠标双击中间那个圈住的地方就可以进入配置界面。

图1、芯片选取界面

图2、配置界面


如上图:

(1)、标号1 为系统核心的配置,其中由晶振的配置。

(2)、标号2为模拟量相关的外设配置,如adc,dac,等。

(3)、标号3为定时器配置。

(4)、标号4为通信相关的外设。比如串口,CAN等。


其他图中有标注。


2、晶振配置

晶振是单片机的时钟来源,相当于心脏,先添加晶振,点击上图编号1,然后出现下图,在点击RCC,进入晶振

                                                

如上图:HSE 和LSE 都选择Crystal..选项。然后注意芯片示意图上有四个引脚变为绿色。


3、时钟树配置

点击出现下图,时钟树:

配置时钟树如上图,改好后按回车键生效。


4、中断管理配置:

点击NVIC 后,进入如下界面:

到这里我们STM32的系统基础配置就完成了!


5、外设配置

下面就是结合具体需求来进行配置,例如我们这里讲的是串口1以及串口1的接收中断配置,那么下面开始配置串口1 及其中断。

                             

这里只要选好模式就行,可以注意到,芯片示意图上已经出现了串口1引脚 。但要记住这里的波特率设置为115200了。这里串口就可以正常使用了。但是,我们还需要使用中断,所以还需要配置串口中断。

中断最后还需要设置好优先级:

到这里,串口1的中断就算是配置好了。接下来可以生成代码了,但是需要几个小的配置,点击工程管理

进入管理工程界面,

                         

到这里软件的工程的软件配置部分就结束了,然后生成工程代码,

6、工程代码上的配置以及修改

使用keil5 打开刚刚生成的工程代码。

 

                          

找到main.c, 会发现如上图的主函数结构,其中


MX_USART1_UART_Init(); 就是软件生成的串口1初始化配置。


如下图,光标放在相应的函数上,鼠标右击,选择GO TO Definetion..  选项即可进行跳转。

跳转进入usart.c 文件,会看到,MX_USART1_UART_Init();的函数体。


#if 1


#pragma import(__use_no_semihosting)                             


struct __FILE


{


int handle;


};


FILE __stdout;      


void _sys_exit(int x)


{


   x = x;


}


int fputc(int ch, FILE *f)


{     


     while((USART1->SR&0X40)==0);  


    USART1->DR = (uint8_t) ch;     


     return ch;


}


#endif


在这个usart.c文件中添加如下代码:,如下图所示


这段代码可以在STM32中正常使用printf()函数。具体添加位置可以如下图,注意所在的文件和位置。同时不要忘了在usart.h 文件中添加#include “stdio.h”

添加 #include “stdio.h”

经过上述两步就可以正常使用printf() 函数了。


最后配置中断相关的函数,


(1)、找到中断服务函数


位于stm32f1xx_it.c 文件中

(2)、找到中断回调函数


1)、HAL_UART_IRQHandler(&huart1); 


2)、UART_Receive_IT(huart);


3)、HAL_UART_RxCpltCallback(huart);


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)


从1)可以跳转到3),                                    


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart); 就是串口中断回调函数 。


并且将void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)复制到usart.c文件中,如下图。在这个函数中就可以写中断逻辑

(3)、开启接收中断


HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)


在这个函数中会使能接收中断,需要三个参数,分别为


1)、串口句柄,


2)、保存接收数据的数组,


3)、每次接受的数据字节数,


所以我们需要首先定义一个保存接收数据的数组。

然后开启中断,需要写在两个地方,分别是串口初始化的时候和回调函数的最后,如下图所示,

最后 在回调函数里加入如下代码进行测试:

最后下载程序测试,


点击发送,单片机收到数据,就会打印出123.(因为我们使用的是串口1的接收中断,所以通过串口助手给串口一发数据,串口1接收到数据,就会触发接收中断,执行中断服务函数,最终执行到回调函数也就是我们的中断逻辑。这里的回调函数只是为了说明问题,实际使用时还需要判断是哪个串口触发的中断。)

关键字:STM32CubeMX  配置串口1  接收中断 引用地址:STM32CubeMX— 配置串口1 接收中断

上一篇:STM32F1串口通信总结
下一篇:【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解

推荐阅读最新更新时间:2024-11-06 18:03

STM32CubeMX开发实战之项目分析法则
一、第一个项目 我们要建立第一个项目,这里主要是为了进行项目分析之用,让我们明白用CubeMX是如何开展工作的以及如何追踪代码逻辑。好了,废话不多说,开干。 这里我选了一款型号为STM32L151C8Tx作为例子来配置MX,如图所示。 按照上图配置完成后,对MX工程进行配置,然后生成代码即可,见图。 好了,不出大的意外,第一个项目已经生成。大家自行打开即可。 二、项目架构 嗯,真的简单的架构,就那么几个文件夹而已,看图。请叫我贴图王,因为我真的非常喜欢图文并茂。 惊不惊喜、意不意外,这样就可以任意驰骋在STM32的海洋里了,无需管那人世间的纷纷扰扰。好了,拉回来。从图中看的确简单,但是我们还是有必要深入代码深处,逐步探
[单片机]
STM32CubeMX学习笔记——STM32H743窗口看门狗WWDG
STM32CubeMX配置 STM32CubeMX版本:4.27.0 配置流程: Pinout界面选择并开启需要的LED控制与按键输入引脚 Clock Configuration配置时钟树 Configuration界面配置System 生成工程 Pinout配置 LED输出与KEY输入的PIN配置 Clock Configuration配置 开启系统时钟 Configuration 左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等) 右侧是系统及外设模块的具体配置 GPIO 输入输出配置 WWDG1 分频:128 窗口:64 初始值:127 开启中断
[单片机]
<font color='red'>STM32CubeMX</font>学习笔记——STM32H743窗口看门狗WWDG
STM32CubeMX软件工程描述_USART配置过程
Ⅰ、写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍、下载与安装 STM32CubeMX使用方法及功能介绍 STM32CubeMX新建工程+基本IO配置过程 本文接着前面 STM32CubeMX 文章结合USART实例,讲述关于STM32CubeMX新建USART工程,以及新建好完成的软件工程。最终通过STM32CubeMX工具配置完成实现USART串口通信的软件工程。 本文使用 Keil(MDK-ARM) V5 软件为编译环境,如果你没有安装最新版本的软件,请安装Keil(MDK-ARM) V5版本的软件,具体过程可以参考我的一篇文章: MDK-ARM下载与安装 关于本文的更多详情
[单片机]
<font color='red'>STM32CubeMX</font>软件工程描述_USART<font color='red'>配置</font>过程
STM32CubeMX系列教程7:模数转换(ADC)
本章通过两个例程介绍STM32的模数转换器(ADC),第一个通过ADC采集内部温度传感器通道电压,然后得出MCU内部温度。第二个通过DMA的方式采集两个ADC通道电压。 1.ADC 本章程序在串口printf工程的基础上修改,复制串口printf的工程,修改文件夹名。击STM32F746I.ioc打开STM32cubeMX的工程文件重新配置。ADC1外设选择温度传感器通道。 ADC1配置如下,选择默认设置。其Date Alignment设置为数据右对齐。 生成报告以及代码,编译程序。在adc.c文件中可以看到ADC初始化函数。 在stm32f7xx_hal_adc.h头文件中可以找到如下ADC操作函数
[单片机]
<font color='red'>STM32CubeMX</font>系列教程7:模数转换(ADC)
关于stm32CubeMX的stm32f103编程
0. 准备 安装完成驱动并连接好以后,进入设备管理器可以看到它们都已被识别。 打开putty.exe,选择串口连接,用于查看之后的串口输出。 1. 编写Cube程序,配置 UART 0为9600,8n1,上电后向串口输出“Hello”,在PC上通过串口软件观察结果; 安装完成并打开CubeMX软件,选择New Project,选择 STM32 F103C8Tx并点击ok。 进入工程界面以后我们可以看到右边有 芯片 的引脚图,如下所示。我们点击PA11和PA12,选择GPIO_Input(后面按钮用)。然后在左边的配置中将UART1模式定为Half-Duplex。 在生成代码前,进入工程配置。填写工程名、保存路
[单片机]
关于<font color='red'>stm32CubeMX</font>的stm32f103编程
STM32hal库串口中断接收任意字符
cubeMCX设置: 生成工程文件 usart.c /** ****************************************************************************** * @file usart.c * @brief This file provides code for the configuration * of the USART instances. ****************************************************************************** * @attenti
[单片机]
STM32hal库<font color='red'>串口</font><font color='red'>中断</font><font color='red'>接收</font>任意字符
【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解
前言: 今天我们学习STM32CubeMX串口的操作,以及HAL库串口的配置,我们会详细的讲解各个模块的使用和具体功能,并且基于HAL库实现Printf函数功能重定向,UART中断接收,本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5、串口: 使用USART1 PA9,PA10 知识概括: 通过本篇博客您将学到: STM32CubeMX创建串口例程 HAL库UATR函数库
[单片机]
【STM32】HAL库 <font color='red'>STM32CubeMX</font>教程四---UART<font color='red'>串口</font>通信详解
STM32F103标准库开发---Uart串口通信实验---函数发送和中断接收
一、Uart串口通信----函数发送 1. Uart串口发送(标准库)函数—单字节发送 Uart串口发送函数在STM32F103标准库的 stm32f103x_usart.c 文件中,具体如下图所示: 具体函数如下: /** *@功能:通过USARTx外设传输单个字节数据 *@参数1:指定USART外设(USART1,USART2,USART3,USART4,USART5) *@参数2:要传输的数据(最多9位数据,由初始化配置决定) *@返回值:无 */ void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) { /* Check the parame
[单片机]
STM32F103标准库开发---Uart<font color='red'>串口</font>通信实验---函数发送和<font color='red'>中断</font><font color='red'>接收</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved