嵌入式系统 实验一 GPIO口控制LED实验

您所在的位置:网站首页 嵌入式基础代码 嵌入式系统 实验一 GPIO口控制LED实验

嵌入式系统 实验一 GPIO口控制LED实验

2024-07-11 18:47| 来源: 网络整理| 查看: 265

实验一 GPIO口控制LED实验 1 实验目的 了解并掌握如何控制 STM32 的 GPIO;掌握控制 LED 的电路原理和程序代码; 2 实验环境 硬件:1 个空气温湿度传感器模块、1 个 ST-Link 调试器、1 根 USB2.0 方口线、1 根 USB3.0 数据线、1 台 PC 机;软件:Windows 7/XP、MDK 集成开发环境。 3 实验功能

实现Status、 RS485-R、 RS485-T、 User1 四个指示灯轮流闪烁。 1)硬件原理 :温湿度传感器模块有四个指示灯,分别是 Status、 RS485-R、 RS485-T 和 User1。 在后面的实验中, 可先不考虑这些名称,它们是根据该模块与物联魔盒系列中其他模块结合应用时的功能定义的,本课程中只需掌握它们的控制原理。模块上四个指示灯的控制原理,如下图所示: 在这里插入图片描述

下表列出了这四个指示灯的引脚配置信息,请注意原理图编号,信号名称与MCU控制引脚间的对应 在这里插入图片描述

2)软件原理 由图 2.1.1 分析, 要让 LED 点亮, 使 MCU 的 PB4、 PB5、 PB6、 PB7 引脚输 出低电平即可。感知执行模块的 MCU 型号为 STM32F103C8T6,在该芯片上, I/O 引脚 可以被软件设置成各种不同的功能,如输入或输出,所以又被称为 GPIO(General Purpose I/O)。 而 GPIO 引脚又被分为 GPIOA、 GPIOB、 GPIOC、 GPIOD 四个不同的组,除了 GPIOD 分为 3 个引脚外,其他组都分为 0~15 共 16 个不同的引脚。 因此, LED 的控制逻辑如下:

GPIO 端口引脚多——就要选定需要控制的特定引脚。GPIO 功能如此丰富——配置需要的特定功能。控制 LED 的亮和灭——设置 GPIO 输出电压的高低。 下面,根据硬件原理图分析程序代码,见下图。 在这里插入图片描述 4. 实验步骤

1.将USB3.0数据线的一端连接感知执行模块的USB3.0调试烧写口,另一端连接ST-Link调试器的“Debug”接口。 2.将USB2.0方口线的一端连接PC机的USB口,另一端连接ST-Link调试器“USB-Debug”接口。 3.编写程序。 4.在工具栏中点击按钮,编译工程成功后,信息框中出现“0 Error(s),0 Warning(s)”的信息。如果编译失败,检查确认相关选项是否配置正确。 5.确认与硬件调试相关的选项已设置正确。 6.点击“LOAD”按钮,将程序下载到温湿度传感器模块中。下载成功后,信息框显示下图所示的信息,表明程序下载成功并已自动运行。 在这里插入图片描述 7.观察模块上四个指示灯的变化。

5 实验程序 #include "stm32f10x.h" void gpio_init(void) // GPIO 的初始化配置 { GPIO_InitTypeDef GPIO_InitStructure; // 定义一个 GPIO_InitTypeDef 类型的结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE); // 开启 AFIO 时钟和 GPIOB 的外设时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // 禁用 JTAG 功能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6|GPIO_Pin_7; // 选择要控制的 GPIOB 引脚 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 设置引脚速率为 50MHz GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 设置引脚模式为通用推挽输出 GPIO_Init(GPIOB, &GPIO_InitStructure); // 调用库函数,初始化 GPIOB } void Delay(unsigned int i) { unsigned int j,k; for(j = 0 ; j


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3