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

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


⭐️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灯闪烁。

相关文章
|
人工智能 机器人
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
|
人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)
|
传感器 数据采集 人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
|
人工智能 编解码
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
|
7月前
|
机器学习/深度学习 存储 人工智能
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能应用领域有哪些
本文全面探讨了人工智能(AI)的应用领域和技术核心,涵盖医疗、交通、金融、教育、制造、零售等多个行业,并分析了AI技术的局限性及规避策略。同时,介绍了生成式人工智能认证项目的意义与展望。尽管AI发展面临数据依赖和算法可解释性等问题,但通过优化策略和经验验证,可推动其健康发展。未来,AI将在更多领域发挥重要作用,助力社会进步。
|
9月前
|
机器学习/深度学习 人工智能 运维
人工智能在事件管理中的应用
人工智能在事件管理中的应用
250 21
|
10月前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在现代医疗中的革新应用
本文深入探讨了人工智能(AI)技术在医疗领域的最新进展,重点分析了AI如何通过提高诊断准确性、个性化治疗方案的制定以及优化患者管理流程来革新现代医疗。文章还讨论了AI技术面临的挑战和未来发展趋势,为读者提供了一个全面了解AI在医疗领域应用的视角。
206 11
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在医疗诊断中的应用与前景####
本文深入探讨了人工智能(AI)技术在医疗诊断领域的应用现状、面临的挑战及未来发展趋势。通过分析AI如何辅助医生进行疾病诊断,提高诊断效率和准确性,以及其在个性化医疗中的潜力,文章揭示了AI技术对医疗行业变革的推动作用。同时,也指出了数据隐私、算法偏见等伦理问题,并展望了AI与人类医生协同工作的前景。 ####
674 0
|
9月前
|
机器学习/深度学习 数据采集 人工智能
人工智能在变更管理中的应用:变革的智能化之路
人工智能在变更管理中的应用:变革的智能化之路
393 13

热门文章

最新文章