第四章 stm32 cubemx 串口中断实验以及proteus仿真(下)

第四章 stm32 cubemx 串口中断实验以及proteus仿真(下)


前言

本章接着上一章串口实验的内容,讲串口的中断实验。中断一般为接收中断,即将函数发送后利用中断的方式进行接收。

一、串口中断

上一章在STM32 CUBEMX的配置过程中,已经开启了串口的中断。串口的中断包括发送中断(不常用)和接收中断。一般在写一个大型的工程文件时,串口需要配合DMA使用,用来增加cpu的处理效率,此时暂时不讲。本章主要利用串口中断来实现数据的接收。本章的实验效果为利用串口2进行数据发送,利用串口1进行数据接收,再利用串口1将数据发送到com口打印出来进行实时显示。本章为仿真效果,若在stm32F103的板子上运行注意IO口的对应,如果实现两个板子的通信注意两个板子需要共地,即将两个板子的GND连接在一起。

二、使能串口中断

加入串口中断使能函数

每次进入串口中断函数hal库会自动取消中断函数使能,此时需要再次使能函数。

 uint8_t axbuffer[5];
  HAL_UART_Receive_IT(&huart1, axbuffer, 5);

在这里插入图片描述

三.加入主函数

在这里插入图片描述

四.寻找中断回调函数

本章所引入的串口中断,触发方式为收到数据时,触发中断,进入中断函数。如图所示,为串口中断函数,选中函数点击鼠标右键选择go definition可以进入到函数内部。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

加入中断回调函数

代码如下(示例):

uint8_t buffer1[5];
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//中断回调函数
{
  buffer1[0] = axbuffer[0];
  buffer1[1] = axbuffer[1];
  buffer1[2] = axbuffer[2];
  buffer1[3] = axbuffer[3];
  buffer1[4] = axbuffer[4];    
  HAL_UART_Transmit(&huart1, buffer1, 5, 999);
      HAL_UART_Receive_IT(&huart1, axbuffer, 5);//再次使能
      
}

在这里插入图片描述

四.Proteus仿真或者烧录可直接看到效果。

注意利用串口1和串口2通信时IO口的对应关系,本章例程为由uart2的PA2发送,由串口1的PA10进行中断接收,PA10-PA2。在这里插入图片描述

代码如下(示例):
在这里插入图片描述


总结

以上就是今天要讲的内容,本文为上一章的延续以及利用Proteus仿真看到的效果。
上一章详情参考:第四章 stm32 cubemx 串口实验以及proteus仿真
如果是在基础配置Cubemx或者基础操作Proteus时出现问题请参考:第一章 stm32 cubemx基础配置实验以及proteus 8的使用

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值