嵌入式STM32入门之STM32中断——点灯实验、串口通信

一、前言

紧接上回实验,我们介绍了STM32的串口通信实验,学习了串口协议和RS-232标准,RS232电平与TTL电平的区别,以及"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。这里使用的STM32串口通信都是简单的通信,只需要STM32不断发送Hello Windows而已,接下来我们来介绍利用中断来点亮LED灯、以及可以完成简单交互的串口通信(依然使用USB转接口)。

二、实验要求

  1. 用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
  2. 采用串口中断方式重做上周的串口通信作业,分别实现:1)当stm32接收到字符“s”时,停止持续发送“Hello Windows!”; 当接收到字符“t”时,持续发送“Hello Windows!”(提示:采用一个全局标量做信号灯);2)当stm32接收到字符“stop stm32!”时,停止持续发送“Hello Windows!”; 当接收到字符“go stm32!”时,持续发送“Hello Windows!”(提示:要将接收到的连续字符保存到一个字符数组里,进行判别匹配,写一个接收字符串的函数。

三、中断介绍

与51单片机的中断基本相似,只是在51中我们的中断不是那么复杂,相对来说STM32的中断更加复杂。
M32 中断非常强大,每个外设都可以产生中断,所以中断的讲解放在哪一个外设里面去讲都不合适,这里单独抽出一章来做一个总结性的介绍。
中断:把正常正在运行的程序打断,运行中断服务函数,运行完之后再回到主程序。
**外部中断,体现在外设水平,系统异常,体现在内核水平。**中断就是异常,异常就是中断。
在这里插入图片描述

中断由NVIC这个外设来控制。(下列会特意说明STM32CuBe怎么设置)
NVIC:嵌套向量中断控制器,属于内核外设,管理着包括部分内核和片上所有外设的中断相关的功能。 两个重要的库文件:core_cm3.h(定义所有内核上面的寄存器,NVIC寄存器就在这里面)和misc.h(相关的函数)。
对于中断而言,最重要的是优先级,由NVIC->IPRx(中断优先级寄存器)设定。

介绍一下抢占优先级、响应优先级的区别:

  • 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的;
  • 抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断;
  • 抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行;
  • 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
    所以,有中断的嵌套: 在这里插入图片描述

除此之外还要注意:
打断的情况只会与抢占优先级有关, 和响应优先级无关!
一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如分组2,设置好分组之后一般不会再改变分组。随意改变分组会导致中断管理混乱,程序出现意想不到的执行结果。

四、CuBe实现中断点灯

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

  • 核心板为STM32F103C8T6最小核心板,设置PA1端接开关,PB5接LED
  • 对于按键电路,设置上拉式按键
  • 按键按下,引脚PA1读到低电平;按键释放&
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式系统开发是指利用嵌入式系统的硬件和软件技术,按照特定的应用需求,实现特定功能的系统开发过程。而基于STM32F103R6系列的嵌入式系统开发中,串口通信是其中一个重要的技术环节。 STM32F103R6是意法半导体公司推出的一款基于ARM Cortex-M3内核的32位微控制器系列产品,具有丰富的外设和接口资源。在嵌入式系统开发中,利用STM32F103R6系列的串口通信功能,可以实现嵌入式设备与外部设备之间的数据传输和通信。 串口通信是通过串行接口实现数据传输的一种通信方式,在嵌入式系统开发中具有广泛的应用。利用STM32F103R6系列的串口通信功能,可以实现与PC机、传感器、显示器等外部设备之间的数据交换和通信。开发人员可以通过编程控制串口通信协议、波特率等参数,实现嵌入式系统与外部设备之间的稳定、高效的数据传输。 在基于STM32F103R6系列的嵌入式系统开发中,串口通信不仅可以实现数据传输,还可以实现嵌入式系统的远程调试和监控。通过串口通信,开发人员可以实时监测嵌入式系统的运行状态,进行程序调试和性能优化。 总之,基于STM32F103R6系列的嵌入式系统开发中,串口通信是一项十分重要的技术。通过合理地利用串口通信功能,可以实现嵌入式系统与外部设备之间的稳定、高效的数据交换和通信,从而满足特定应用需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值