中断及串口通信进阶

重庆交通大学信息科学与工程学院

《嵌入式系统基础A》课程

作业报告(第七周)

班 级: 物联网工程2002

姓名-学号 : 吴泽霖-632007060217

实验项目名称: 中断及串口通信进阶

实验项目性质: 设计性

实验所属课程: 《嵌入式系统基础》

实验室(中心): 南岸校区语音大楼

指 导 教 师 : 娄路

完成时间: 2022 10 22


一、实验内容和任务

中断及串口通信进阶

二、实验要求

1. 分组要求:每个学生独立完成,即1人1组。

2. 程序及报告文档要求:具有较好的可读性,如叙述准确、标注明确、截图清晰等。

3.项目代码上传github,同时把项目完整打包为zip文件,与实验报告(Markdown源码及PDF文件)、作业博客地址一起提交到学习通。

三. 实验过程介绍

一、用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

1、通过STMCube配置项目

配置RCC
请添加图片描述配置SYS请添加图片描述选择 LED 灯引脚 PA5,设置引脚为输出模式 GPIO_Output;
选择作为外部中断的引脚 PB15,设置为与中断线 GPIO_EXTI15 连接。请添加图片描述
将 GPIO_PA5 命名为 LD1
将 GPIO_PB15 命令为 B1_EXTI ,触发方式选择下降沿触发请添加图片描述

请添加图片描述
配置中断优先级请添加图片描述

2、生成keil文件

请添加图片描述

3、添加代码

将下列代码写在main.c的图片相应位置

/*
* @brief EXTI line detection callbacks. 
* @param GPIO_Pin: Specifies the pins connected EXTI line,
* @retval None 
*/ 
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 
{ 
	if( GPIO_Pin == B1_EXTI_Pin ) // 判断外部中断源
		{
			HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin); // 翻转LD1状态
		}
}

请添加图片描述

4、烧录运行

请添加图片描述

请添加图片描述

二、采用串口中断方式实现串口通信

1、CUBEMX配置

RCC配置
请添加图片描述
设置SYS
请添加图片描述设置USART
请添加图片描述设置NVIC
请添加图片描述创建项目请添加图片描述

请添加图片描述

2、代码编写

在main函数前定义全局变量
请添加图片描述

在main函数中设置接收中断
请添加图片描述请添加图片描述

3、烧录运行

请添加图片描述

请添加图片描述

请添加图片描述

三、STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据

1、CUBEMX工程配置

RCC配置请添加图片描述
设置串口
请添加图片描述

设置NVIC
请添加图片描述
DMA设置请添加图片描述
请添加图片描述时钟源设置
请添加图片描述项目文件设置请添加图片描述

请添加图片描述

2、编写代码

请添加图片描述
烧录运行请添加图片描述
请添加图片描述

四、总结

更加清楚明确的了解到串口通信中断的过程,也了解了DMA通信的中断原理,库函数分析对应寄存器,以及对应函数。

五、参考

https://blog.youkuaiyun.com/as480133937/article/details/105013368
https://blog.youkuaiyun.com/qq_47281915/article/details/121053903
https://blog.youkuaiyun.com/m0_58892312/article/details/121004248

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值