关于串口通信中断/DMA的实现的学习记录

1.实验环境

本次实验我们使用到的硬件有STM32F103C8T6芯片,软件我们使用KeilMDK与STMCubeMX进行编程,使用野火串口调试工具进行结果的查看。当然也可以使用其他的串口调试工具进行查看结果

2.使用中断方式进行串口通信

使用STMCubeMX配置项目

2.1.串口配置

这里我们使用的是STM32F103C8T6系统板,打开STM32CubeMX软件,选择对应的芯片,开始配置
配置sys
在这里插入图片描述
配置rcc
在这里插入图片描述
配置时钟
在这里插入图片描述
配置串口
在这里插入图片描述
开启中断使能
在这里插入图片描述
完成项目配置
打开项目

2.2.代码编写

定义全局变量
在这里插入图片描述

重载中断响应函数
在这里插入图片描述
在while循环中写入以下代码
在这里插入图片描述
烧录程序之后打开串口调试工具

2.3.测试结果

测试结果
在这里插入图片描述
在这里插入图片描述
运行正常

3.使用DMA方式进行串口通信

在刚才配置项目的基础上,我们打开DMA通道
在这里插入图片描述
在main函数中修改成如下代码

int main(void)
{

  HAL_Init();

	uint8_t message[] = "hello windows\n";  //定义数据发送数组

  SystemClock_Config();

  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();

  while (1)
  {
    HAL_UART_Transmit_DMA(&huart1, (uint8_t *)message, sizeof(message));
	  HAL_Delay(1000);
  }
}

打开串口测试工具进行结果查看
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值