合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)

简介: 合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)

⭐️STM32控制GPIO实现蜂鸣器响

我们这里使用的是STM32芯片,我们用STM32控制GPIO实现蜂鸣器响。(关于GPIO我们在前面介绍过了,这里给新人看的。可以直接从原理图开始看)

🌟什么是GPIO?

那么,什么是GPIO呢?

GPIO是指通用输入输出,它是一种数字接口,可以让单片机和其他电子设备交换数据。具体来说,GPIO是一组用于控制电路的引脚,其可以通过软件进行配置,从而实现输入和输出功能。通过GPIO,可以实现与外部设备的通信,如LED灯,按钮,传感器等等。GPIO在嵌入式系统和单片机控制中应用广泛,是控制硬件的重要手段之一。

🌟GPIO基本结构

GPIO是General Purpose Input/Output的缩写,意为通用输入/输出,是一种用于嵌入式系统中的输入输出接口。GPIO通常由一组输入/输出引脚组成,可以用来读取传感器数据、控制电机等外部设备。GPIO的基本结构可以分为以下几个部分:

  1. 输入/输出引脚:GPIO通常包含多个输入/输出引脚,引脚数量和类型取决于具体的芯片型号和应用需求。
  2. 数据方向控制器:GPIO可以通过数据方向控制器来控制输入和输出方向。当GPIO被配置为输入时,数据方向控制器将向外部设备输出一定的信号来指示其为输入模式。当GPIO被配置为输出时,数据方向控制器将向外部设备输出一定的信号来指示其为输出模式。
  3. 状态寄存器:GPIO可以通过状态寄存器来记录GPIO的当前状态,例如输入或输出状态、电平状态等。
  4. 中断控制器:GPIO可以通过中断控制器来实现中断功能。当GPIO状态发生变化时,中断控制器会产生一个中断信号,从而使系统执行相应的中断处理程序。
  5. 编程接口:GPIO可以通过一种编程接口来进行配置和控制,通常使用各种编程语言来实现,例如C语言、Python等。

总的来说,GPIO是一种非常灵活的输入输出接口,可以广泛地应用于各种嵌入式系统中。下面是对于的结构图:

🌟GPIO 功能模式

STM32F103系列的I/O引脚共有8种工作模式,其中输出模式有四种:推挽输出、开漏输出、复用推挽输出、复用开漏输出;输入模式有四种:上拉输入、下拉输入、浮空输入、模拟输入。

  • 推挽输出模式的引脚输出高低电平时,直接输出高电平或低电平,适合连接到外部电路或器件的输入端。
  • 开漏输出模式的引脚输出高电平时,不输出电压,在输出低电平时,将端口与地相连,适合连接到晶体管、继电器等需要开关控制的器件。
  • 复用推挽输出模式和复用开漏输出模式都是在要使用定时器、USART等外设时选择的模式。复用推挽输出模式和推挽输出模式类似,输出高低电平时直接输出高电平或低电平;而复用开漏输出模式和开漏输出模式类似,输出高电平时不输出电压,在输出低电平时将端口与地相连。
  • 上拉输入模式和下拉输入模式都是用来连接开关等输入设备的,其中上拉输入模式在输入端口与VCC之间连接一个电阻,下拉输入模式在输入端口与地之间连接一个电阻。
  • 浮空输入模式和模拟输入模式都是用来连接传感器等模拟信号源的,浮空输入模式下引脚不与任何电路相连,使用前需要外部加电源或信号源,模拟输入模式下引脚内部连接一个数据采集电路,可以直接将外部模拟信号转换为数字信号。

⭐️硬件及原理图

我们可以对照开发板原理图,找到对应的引脚。

我们可以看到控制蜂鸣器的接口是PC13,我们接下来开始写代码。

⭐️代码实现

🌟Buzzer.c

#include "include.h"
 
void BEEP_Init(void)
{   
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); 
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;      //LED0-->PC.2 端口配置
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
 
}

🌟Buzzer.h

#ifndef __LED_H
#define __LED_H
 
void BEEP_Init(void);
 
#endif

🌟main.c

#include "include.h"
 
 
int main(void)
{
 
  BEEP_Init();
  
  while(1)
  {
    
    GPIO_ResetBits(GPIOC, GPIO_Pin_13);
    Delay_ms(2000);
    GPIO_SetBits(GPIOC, GPIO_Pin_13);
    Delay_ms(2000);
    
  }
}
  1. GPIO_ResetBits(GPIOC, GPIO_Pin_13);:调用一个名为GPIO_ResetBits的函数,它将重置与GPIOC和GPIO_Pin_13相关的位。使蜂鸣器发出声响。
  2. Delay_ms(2000);:调用一个名为Delay_ms的函数,它将使程序暂停执行2000毫秒(即2秒)。这通常用于控制程序的执行速度或等待外部设备的响应。
  3. GPIO_SetBits(GPIOC, GPIO_Pin_13);:调用一个名为GPIO_SetBits的函数,它将设置与GPIOC和GPIO_Pin_13相关的位。
  4. Delay_ms(2000);:再次调用Delay_ms函数,使程序暂停执行2000毫秒。

 

⭐️总结

我们学习了STM32怎么通过控制GPIO实现蜂鸣器响,通过原理图,找到对应的GPIO口,来实现蜂鸣器响。其实,这里的代码和我们上一篇的代码差不多,主要是管脚不一样。

相关文章
|
5月前
|
传感器 数据采集 人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)
|
5月前
|
人工智能 机器人
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
|
5月前
|
人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
|
5月前
|
人工智能 编解码
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
|
6天前
|
机器学习/深度学习 人工智能 搜索推荐
深度探索人工智能在医疗影像诊断中的应用与挑战####
本文深入剖析了人工智能(AI)技术,特别是深度学习算法在医疗影像诊断领域的创新应用,探讨其如何重塑传统诊断流程,提升诊断效率与准确性。同时,文章也客观分析了当前AI医疗影像面临的主要挑战,包括数据隐私、模型解释性及临床整合难题,并展望了未来发展趋势。 ####
|
4天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【10月更文挑战第36天】随着人工智能技术的飞速发展,其在各行各业的应用日益广泛,特别是在医疗领域。本文将深入探讨AI技术如何革新传统医疗诊断流程,提高疾病预测的准确性,以及面临的挑战和未来发展方向。通过具体案例分析,我们将看到AI如何在提升医疗服务质量、降低医疗成本方面发挥关键作用。
76 58
|
1天前
|
人工智能 算法 安全
人工智能在医疗诊断中的应用与前景####
本文旨在探讨人工智能(AI)技术在医疗诊断领域的应用现状、面临的挑战以及未来的发展趋势。随着科技的不断进步,AI技术正逐步渗透到医疗行业的各个环节,尤其在提高诊断准确性和效率方面展现出巨大潜力。通过分析当前AI在医学影像分析、疾病预测、个性化治疗方案制定等方面的实际应用案例,我们可以预见到一个更加智能化、精准化的医疗服务体系正在形成。然而,数据隐私保护、算法透明度及伦理问题仍是制约其进一步发展的关键因素。本文还将讨论这些挑战的可能解决方案,并对AI如何更好地服务于人类健康事业提出展望。 ####
|
1天前
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与挑战
本文探讨了人工智能(AI)在医疗诊断领域的应用及其面临的挑战。随着技术的不断进步,AI已经在医学影像分析、疾病预测和个性化治疗等方面展现出巨大潜力。然而,数据隐私、算法透明度以及临床整合等问题仍然是亟待解决的关键问题。本文旨在通过分析当前AI技术在医疗诊断中的具体应用案例,探讨其带来的优势和潜在风险,并提出相应的解决策略,以期为未来AI在医疗领域的深入应用提供参考。
16 3
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在教育领域的应用与挑战
随着科技的不断进步,人工智能(AI)技术已经深入到社会的各个领域,其中教育领域尤为突出。本文旨在探讨人工智能在教育领域的应用现状、面临的挑战以及未来的发展趋势。通过分析AI技术如何改变传统教学模式,提高教育质量和效率,同时指出其在实际应用中可能遇到的问题和挑战,为未来教育的发展提供参考。
14 2
|
1天前
|
机器学习/深度学习 人工智能 物联网
通义灵码在人工智能与机器学习领域的应用
通义灵码不仅在物联网领域表现出色,还在人工智能、机器学习、金融、医疗和教育等领域展现出广泛应用前景。本文探讨了其在这些领域的具体应用,如模型训练、风险评估、医疗影像诊断等,并总结了其提高开发效率、降低门槛、促进合作和推动创新的优势。

热门文章

最新文章