STM32F103C8T6 单片机系统电路设计:按键、LCD 和语音模块集成

在系统电路中,STM32F103C8T6 单片机核心板模块是系统操作和数据处理的核心。为了方便用户操作系统和查看系统状态,独立按键模块和 LCD1602 液晶显示器模块被引入。同时,为了增加更多的交互方式,ISD1820 录音语音模块也被加入系统中。

独立按键和 LCD1602 液晶显示器可以通过 I/O 端口直接连接到单片机,而 LCD1602 液晶显示器的引脚 PB5~PB15 连接到单片机的其他端口。三个独立按键分别连接到单片机的 PC13、PC14 和 PC15 端口,并另一端连接地,无需连接电阻。ISD1820 录音语音模块的 PLAYE 和 REC 引脚分别与 PA1 和 PA0 引脚相连。整个系统电路的电源由 USB 接口供电。

定时器 3 中断初始化函数

定义一个 STM32 的定时器中断初始化函数 TIM3_Int_Init,用于初始化定时器 3 的中断。

void TIM3_Int_Init(void)
{
    // 配置定时器 3
    // ...

    // 使能定时器 3 中断
    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);

    // 配置 NVIC 中断
    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}

STM32F103C8T6 中断类型

STM32F103C8T6 单片机共有 19 个中断,分别是:

  1. 外部中断线 0~15
  2. DMA1 通道 1 完成中断
  3. DMA1 通道 2 完成中断
  4. DMA1 通道 3 完成中断
  5. DMA1 通道 4 完成中断
  6. DMA1 通道 5 完成中断
  7. DMA1 通道 6 完成中断
  8. DMA1 通道 7 完成中断
  9. ADC1 和 ADC2 全局中断
  10. USBFS 全局中断
  11. CAN1 RX0 中断
  12. CAN1 RX1 中断
  13. CAN1 SCE 中断
  14. TIM1 更新中断
  15. TIM1 捕获/比较中断
  16. TIM2 更新中断
  17. TIM2 捕获/比较中断
  18. TIM3 更新中断
  19. TIM3 捕获/比较中断

本文用到的中断函数

本文用到了 TIM3 更新中断函数 TIM3_IRQHandler,其作用是在定时器 3 溢出时触发中断,进行相应的处理。

void TIM3_IRQHandler(void)
{
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
    {
        // 处理定时器 3 溢出事件
        // ...

        // 清除中断标志位
        TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
    }
}
STM32F103C8T6 单片机系统电路设计:按键、LCD 和语音模块集成

原文地址: https://www.cveoy.top/t/topic/nPC5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录