STM32MP1 Cortex-M4开发:扩展板LED灯控制实验
摘要
写在前面: 本文属于《ARM Cortex-M4裸机开发篇》系列教程,该系列共14篇。开发平台采用华
写在前面:
本文属于《ARM Cortex-M4裸机开发篇》系列教程,该系列共14篇。开发平台采用华清远见FS-MP1A开发板(基于STM32MP157双核处理器),M4裸机部分不仅讲解核心控制逻辑,还深度集成资源扩展板上的各类传感器与执行器件——空气温湿度传感器、LED指示灯、数码管、蜂鸣器、振动马达、按键中断、直流风扇等,本篇即为其关键一环。
资源扩展板作为FS-MP1A的专用扩展模块,集成了十余种主流传感器、执行器及总线控制器件,非常适合项目级开发拓展。覆盖智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境监测等方向的综合项目约十个,配套文档、源码及应用程序资料同步提供。
此外,针对FS-MP1A开发板,除Cortex-M4裸机系列外,还提供Cortex-A7开发、FreeRTOS、Linux基础及应用开发、Linux系统移植、Linux驱动开发、硬件设计、人工智能机器视觉、Qt应用编程、Qt综合项目实战等系列教程,技术栈覆盖全面。
资源扩展板介绍
硬件介绍&资源扩展板可开发项目
扩展板LED灯控制
实验原理
对照扩展板原理图与实物,板载四颗LED。其中LED4为底板电源指示灯,LD1、LD2、LD3为可编程控制引脚。电路原理采用经典三极管驱动方式:
根据电路图,当LED1引脚输出高电平时,三极管Q1导通,发光二极管LED1点亮。同理,LED2和LED3引脚置高电平后,LD2和LD3也会亮起。
进一步查阅原理图,LED1、LED2、LED3分别对应STM32MP157芯片的PE10、PF10、PE8引脚,映射关系一目了然:
扩展板与底板接口对照图
依据网络编号可直接追踪至CPU管脚,上图已清晰标注对应关系。整理如下表:
| 原理图网络编号 | 对应管脚 | 管脚功能 | 管脚功能码 |
| LED1 | PE10 | GPIO | ANALOG |
| LED2 | PF10 | GPIO | ANALOG |
| LED3 | PE8 | GPIO | ANALOG |
实验目的
掌握LED驱动原理
学会配置并操作STM32MP157A的GPIO端口,实现对外设LED的点亮与熄灭控制
实验环境
FS-MP1A开发平台
ST-Link仿真器
STM32CubeIDE集成开发环境
PC机(Windows XP / 7/10,32位或64位皆可)
实验步骤
启动STM32CubeIDE,首先进入CubeMX配置界面。
在搜索框中查找扩展板LED对应的GPIO引脚:PE8、PE10、PF10。左键单击引脚,将其模式设置为GPIO_Output。
需特别注意:与部分单片机不同,此处必须额外设置“Pin Reservation”指定给“Cortex-M4”。若遗漏此步骤,STM32CubeMX不会生成GPIO初始化代码。操作方式:在已选引脚上右键,选择“Pin Reservation” → “Cortex-M4”。
在Code Generator选项中,勾选“为每个外设生成独立的C和H文件”,便于后期代码维护与阅读。
完成上述配置后,按Ctrl+S保存,系统弹出提示是否生成代码,选择Yes即自动生成工程,同时系统时钟配置代码一并完成。
以上为新建工程的配置流程。若希望快速上手,也可按12.3.2章节方式直接导入已有工程——工程路径位于【华清远见-FS-MP1A开发资料\2-程序源码\ARM体系结构与接口技术\Cortex-M4\7_EX_GPIO_LED】。
接下来实现GPIO控制函数。在main.c中编写驱动代码,核心调用HAL库的GPIO引脚电平输出API。
void bsp_led_on(void)
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);
}
void bsp_led_off(void)
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET);
}
最后在main.c的主循环中依次调用bsp_led_on()与bsp_led_off(),通过改变GPIO引脚电平即可实现LED亮灭控制。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。