中断及串口通信

一、 HAL库中断方式进行串口通信

1、通过CubeMX配置项目

1、设置RCC
在这里插入图片描述

2、设置SYS
在这里插入图片描述

3、设置USART
在这里插入图片描述

4、设置NVIC
在这里插入图片描述

5、创建项目
在这里插入图片描述

2、在keil上配置代码

1、打开在CubeMX上配置的项目
2、在main函数前定义全局变量
3、在main函数中设置接收中断
4、在main函数中的while循环里添加传输代码
在这里插入图片描述

5、在main函数下重写中断处理函数
在这里插入图片描述

6、main函数的全部代码
7、编译并烧录
在这里插入图片描述

3、效果

在这里插入图片描述
在这里插入图片描述

二、STM32外部中断方式控制灯的亮灭

1、通过STMCube配置项目

1、引脚配置:

A4输出控制灯的亮灭,设置为GPIO_OUTPUT
A1持续输出高电平,设置为GPIO_OUTPUT
A7持续输出低电平,设置为GPIO_OUTPUT
B5为模拟开关,设置为GPIO_EXIT5**(外部中断模式)**
在这里插入图片描述

2、配置EXIT
在这里插入图片描述

3、配置SYS
在这里插入图片描述

4、配置GPIO
在这里插入图片描述

5、代码创建勾出这个
6、创建项目
在这里插入图片描述

2、通过KEIL配置代码

1、打开生成的项目,找到stm32f1xx_it.c
2、找到EXTI9_5_IRQHandler函数,选中HAL_GPIO_EXIT_IRQHandler这个语句按F12跳到该函数
在这里插入图片描述

3、往下找到HAL_GPIO_EXTI_Callback这个函数

该函数是用户自己重写,可以在这里根据不同的中断处理不同的处理。在这里需要根据不同中断实现A4的亮灭
在这里插入图片描述

4、编译生成hex
5、通过FlyMCU进行烧录
在这里插入图片描述

3、结果

实验现象

三、CubeMX配置串口DMA数据传输

1、设置RCC
在这里插入图片描述

2、设置串口
在这里插入图片描述
在这里插入图片描述
3、DMA设置
在这里插入图片描述
在这里插入图片描述

4、时钟源设置
在这里插入图片描述

5、项目文件设置
在这里插入图片描述
在这里插入图片描述

6、创建工程
7、配置下载工具
在这里插入图片描述
8、测试历程:
添加数组发送数组

/* USER CODE BEGIN Init */
 uint8_t Senbuff[] = "\r\n**** Serial Output Message by DMA ***\r\n   UART DMA Test \r\n   Zxiaoxuan";  //定义数据发送数组
  /* USER CODE END Init */

定义while循环

while (1)
  {
    /* USER CODE END WHILE */
   HAL_UART_Transmit_DMA(&huart1, (uint8_t *)Senbuff, sizeof(Senbuff));
         HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }

程序烧录
在这里插入图片描述
串口调试结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值