基于STM32F1系列和LDV5语音模块的语音控制LCD屏幕的点亮

本文介绍了基于STM32F1的外部中断EXTI原理,详细阐述了如何配置EXTI控制LCD屏幕背光,并结合LDV5语音模块实现语音点亮LCD屏幕。通过讲解EXTI初始化、NVIC配置和LCD屏的中断程序,展示了语音控制LCD屏的完整流程。
摘要由CSDN通过智能技术生成

本文章是基于野火指南者F103板载LCD屏的控制,如有不妥之处,欢迎指正交流!


前言

本文章先简单介绍STM32外部中断EXTI原理及初始化以及LDV5语音模块,再利用外部中断EXTI控制野火指南针F103板载RGB灯的亮灭,最后将其推广至LCD屏上,实现语音点亮LCD屏幕的预期。


一、STM32外部中断EXTI

1.什么是外部中断EXTI

a.异常(中断)类型

F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。其中系统异常有 8 个(如果把 Reset 和 HardFault 也算上的话就是 10 个),外部中断有 60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件stm32f10x.h 这个头文件查询到,在 IRQn_Type 这个结构体里面包含了 F103 系列全部的异常声明。

b.EXTI简介

EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。

c.EXTI功能框图

在这里插入图片描述

2.NVIC简介

NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。

以下为NVIC 结构体定义,来自固件库头文件:core_cm3.h

/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC
  memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
  @{
 */
typedef struct
{
   
  __IO uint32_t ISER[8];                      /*!< Offset: 0x000  Interrupt Set Enable Register   中断使能寄存器         */
       uint32_t RESERVED0[24];                                   
  __IO uint32_t ICER[8];                      /*!< Offset: 0x080  Interrupt Clear Enable Register 中断清除寄存器        */
       uint32_t RSERVED1[24];                                    
  __IO uint32_t ISPR[8];                      /*!< Offset: 0x100  Interrupt Set Pending Register  中断使能悬起寄存器         */
       uint32_t RESERVED2[24];                                   
  __IO uint32_t ICPR[8];                      /*!< Offset: 0x180  Interrupt Clear Pending Register 中断清除悬起寄存器       */
       uint32_t RESERVED3[24];                                   
  __IO uint32_t IABR[8];                      /*!< Offset: 0x200  Interrupt Active bit Register  中断有效位寄存器         */
       uint32_t RESERVED4[56];                                   
  __IO uint8_t  IP[240];                      /*!< Offset: 0x300  Interrupt Priority Register (8Bit wide) 中断优先级寄存器*/
       uint32_t RESERVED5[644];                                  
  __O  uint32_t STIR;     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值