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

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


⭐️STM32控制GPIO完成点亮LED灯

我们这里使用的是STM32芯片,我们用STM32控制GPIO完成点亮LED灯。

🌟什么是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之间连接一个电阻,下拉输入模式在输入端口与地之间连接一个电阻。
  • 浮空输入模式和模拟输入模式都是用来连接传感器等模拟信号源的,浮空输入模式下引脚不与任何电路相连,使用前需要外部加电源或信号源,模拟输入模式下引脚内部连接一个数据采集电路,可以直接将外部模拟信号转换为数字信号。

⭐️硬件及原理图

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

我们可以看到控制LED的接口是PB9,我们接下来开始写代码。

⭐️代码实现

🌟LED.C

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

🌟LED.H

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

🌟MAIN.C

#include "include.h"
 
int main(void)
{
  LED_Init();//初始化  
  while (1)
  {
    GPIO_ResetBits(GPIOB, GPIO_Pin_9);//点亮
    Delay_ms(3000);
    GPIO_SetBits(GPIOB, GPIO_Pin_9);//熄灭
    Delay_ms(1000);
    }
}
 

⭐️总结

我们学习了STM32怎么通过控制GPIO完成点亮LED灯,我们文末代码实现的是闪烁,通过原理图,找到对应的GPIO口,来实现LED灯闪烁。

相关文章
|
5月前
|
人工智能 机器人
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
|
5月前
|
人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
|
5月前
|
传感器 数据采集 人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
|
5月前
|
人工智能 编解码
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
|
2天前
|
机器学习/深度学习 人工智能 搜索推荐
深度探索人工智能在医疗影像诊断中的应用与挑战####
本文深入剖析了人工智能(AI)技术,特别是深度学习算法在医疗影像诊断领域的创新应用,探讨其如何重塑传统诊断流程,提升诊断效率与准确性。同时,文章也客观分析了当前AI医疗影像面临的主要挑战,包括数据隐私、模型解释性及临床整合难题,并展望了未来发展趋势。 ####
|
1天前
|
机器学习/深度学习 人工智能 自动驾驶
探索人工智能的无限可能:从基础概念到实际应用
【10月更文挑战第35天】在这篇文章中,我们将一起走进人工智能的世界,探索它的无限可能。从基础概念出发,我们将深入理解人工智能的定义、发展历程以及主要技术。然后,我们将通过具体的代码示例,展示如何利用Python和TensorFlow实现一个简单的人工智能模型。最后,我们将探讨人工智能在现实世界中的应用,包括自动驾驶、医疗健康、金融等领域,并思考其未来发展的可能性。让我们一起开启这场人工智能的奇妙之旅吧!
10 1
|
2天前
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与挑战
【10月更文挑战第34天】人工智能(AI)技术正在改变医疗行业的面貌,为诊断过程带来前所未有的效率和准确性。通过深度学习、神经网络等技术,AI能够分析大量数据,辅助医生做出更快速、更准确的诊断决策。然而,AI在医疗领域的应用也面临着数据隐私、算法透明度和医疗责任等一系列挑战。本文将探讨AI在医疗诊断中的具体应用案例,分析其面临的挑战,并提供对未来发展方向的思考。
|
4天前
|
机器学习/深度学习 人工智能 算法
探索人工智能在图像处理中的应用
【10月更文挑战第32天】本文将深入探讨人工智能(AI)如何在图像处理领域大放异彩,从基础的图像识别到复杂的场景解析,AI技术正逐步改变我们对视觉信息的理解和应用。文章将通过具体案例,揭示AI如何优化图像质量、实现风格迁移和进行内容识别,进而讨论这些技术背后的挑战与未来发展方向。
|
5天前
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与前景
本文探讨了人工智能(AI)技术在医疗诊断领域的应用现状及其未来发展前景。通过分析AI技术如何辅助医生进行疾病诊断、提高诊断准确性和效率,以及面临的挑战和伦理问题,本文旨在为读者提供一个关于AI在医疗领域应用的全面视角。
|
6天前
|
机器学习/深度学习 人工智能 监控
人工智能在医疗健康领域的创新应用
本文旨在探讨人工智能技术在医疗健康领域的创新应用。通过分析AI如何助力疾病诊断、治疗计划制定、患者监护以及药物研发,本文揭示了AI技术为现代医疗服务带来的革命性变化。此外,文章还讨论了实施这些技术时面临的挑战和未来发展趋势,为医疗行业的数字化转型提供了深入见解。
下一篇
无影云桌面