0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32mp1 Cortex M4开发篇8:扩展板LED灯控制实验

华清远见工控 2021-11-01 17:32 次阅读

写在前面:

本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。

资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提供所有项目的说明文档、实验源码、应用程序等资料

针对FS-MP1A开发板,除了Cortex-M4裸机开发篇外,还包括其他多系列教程,包括Cortex-A7开发篇、FreeRTOS篇、Linux基础及应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。

资源扩展板介绍

硬件介绍&资源扩展板可开发项目

poYBAGFn9z-AAMA3AAJtk6t7vns204.jpg

扩展板LED灯控制

实验原理

打开扩展板原理图对照扩展板可以看到扩展板有四个LED灯,其中LED4为底板电压指示灯,LD1、LD2、LD3为可控LED,原理如下:

poYBAGF_lm2ADo1DAACQK5MYX3A129.jpg

有图可知,当LED1为高电平是三极管Q1导通,这时发光二极管LED1会被点亮,同理当LED2和LED3为高电平时LD2、LD3会被点亮。

查看原理图可知LED1、LED2、LED3分别对应STM32MP157芯片的PE10、PF10、PE8如下图:

pYYBAGF_lm2AMMb_AACblHu2hek372.jpg

扩展板与底板接口对照图

根据网络编号可最终追至CPU对应管脚,由于上图已经可以明确LED灯对应管脚。

原理图网络编号 对应管脚 管脚功能 管脚功能码
LED1 PE10 GPIO ANALOG
LED2 PF10 GPIO ANALOG
LED3 PE8 GPIO ANALOG

实验目的

了解LED工作原理

学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口控制LED

实验环境

FS-MP1A开发平台

ST-Link仿真器

STM32CubeIDE开发软件

PC机 XP、Window7/10 (32/64bit)

实验步骤

打开STM32CubeIDE,配置CubeMX。

搜索框内搜索扩展板LED对应GPIO引脚PE8、PE10、PF10,左键点击设置为GPIO_Output

poYBAGF_lm2APaGnAADg9TWVGwo450.jpg

这里我们需要注意一下,和其他单片机不同,还需要继续设置“ Pin Reservation”给“ Cortex-M4”,否则STM32CubeMX不会生生成GPIO初始化相关代码。具体操作:在刚才选择的引脚上,鼠标右键选择“ Pin Reservation”->“ Cortex-M4”。

pYYBAGF_lm2AF9qCAAC7OhcNGFs001.jpg

在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码

poYBAGD1MGmAams0AACpGOkAn0s579.png

完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码

poYBAGD1MG2ADAi6AAAgBCPP1k8477.png

上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\7_EX_GPIO_LED】

添加GPIO函数说明:

我们需要在main.c中添加GPIO相关函数, GPIO引脚输出电平高低函数

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中调用函数改变GPIO引脚高低电平来改变LED灯的状态

pYYBAGFn90CADnhcAACkNLKoAdg961.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44516

    浏览量

    633032
  • 嵌入式
    +关注

    关注

    5068

    文章

    19019

    浏览量

    303292
  • Linux
    +关注

    关注

    87

    文章

    11229

    浏览量

    208927
  • STM32
    +关注

    关注

    2266

    文章

    10871

    浏览量

    354812
  • 开发板
    +关注

    关注

    25

    文章

    4945

    浏览量

    97195
收藏 人收藏

    评论

    相关推荐

    使用M4的MCU(TM4C129X)建立webserver项目,网口指示的状态不对怎么解决?

    本人在使用M4的MCU(TM4C129X)建立webserver项目时候,有个问题想请教下,就是网口指示的状态不对。主要表现是是:网线没有插上的时候,link-LED 和acti
    发表于 11-05 07:28

    实际项目开发中为何选择ARM® Cortex®-M4 内核的HK32MCU?

    ®Cortex®-M4内核的HK32F407芯片的深度知识,并围绕各类实际案例详细解读了如何选型,为何选择ARM®Cortex®-M4内核的HK32MCU。航顺芯片深耕32
    的头像 发表于 10-22 17:19 351次阅读
    实际项目<b class='flag-5'>开发</b>中为何选择ARM® <b class='flag-5'>Cortex</b>®-<b class='flag-5'>M4</b> 内核的HK32MCU?

    基于RK3568教学实验箱操作案例分享:4-1 LED控制实验

    是GPIO0_D5_d管脚控制LED2是GPIO0_D6_d管脚控制。 本实验通过向用户可编程指示
    发表于 09-23 14:06

    迅为iTOP-STM32MP157开发板Linux开发学习一板两用

    应用。 核心板参数列表 CPU: STM32MP157A 架构: 双核 cortex-A7、单核 cortex-M4 主频: 650M 内存:
    发表于 08-08 14:06

    mp157 m4内核开发,不能在线仿真报错了怎么解决?

    : stlink_dap_op_connect(connect) Info : SWD DPIDR 0x6ba02477 Info : [STM32MP157DACx.cm4] Cortex-M4 r0p1
    发表于 07-02 07:28

    请问stm32cortex-m0怎么样?

    为什么都说STM32专业做M3 ,M4M0要找芯唐和NXP,难道因为ST的CORTEX-M0芯片不稳定还是有其他问题?
    发表于 05-15 06:31

    怎样使用STM32MP157A-DK1探索板的m4和SAI协议做音频开发,比如录音?

    怎样使用STM32MP157A-DK1探索板的m4和SAI协议做音频开发,比如录音? M4开发包没有audio codec的接口可以使用,
    发表于 04-11 06:53

    东芝推出一种适用于电机控制的Arm® Cortex®-M4控制

    东芝电子元件及存储装置株式会社(“东芝”)今日宣布,采用Cortex®-M4内核并搭载FPU的TXZ+™族高级系列32位微控制器的M4K组新增8
    的头像 发表于 03-27 10:07 710次阅读
    东芝推出一种适用于电机<b class='flag-5'>控制</b>的Arm® <b class='flag-5'>Cortex</b>®-<b class='flag-5'>M4</b>微<b class='flag-5'>控制</b>器

    stm32mp157在uboot阶段启动m4程序存在的问题求解

    写了一个stm32mp157的m4程序,需要在uboot阶段就去启动这个程序,现在存在两个问题。 1、程序内包含了双核通信的部分,因此这部分的初始化肯定是要等到linux系统内核初始化完成之后才可能
    发表于 03-21 08:00

    关于STM32F429IIT6高性能Arm®Cortex®-M4 32位RISC内核微控制

    •一个SAI串行音频接口 •SDIO/MMC接口 •LCD-TFT显示控制器 •Chrom ART加速器™ STM32F429IIT6产品特性: •核心:Arm®32位Cortex®-M4
    发表于 03-12 09:39

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    主控芯片: ST首款Cortex-A系列MPU,STM32MP157双核异构,2*Cortex-A7核+1Cortex-M4核 存储容量
    发表于 02-01 14:25

    高效能Cortex®-M4 &M0+MCU选型表

    设有研发、销售及技术支持分部。雅特力坚持自主研发,以科技创新引领智慧未来,专注于ARM® Cortex®-M4/M0+的32位微控制器研发与创新,提供高效能、高可靠性且具有竞争力的产品
    发表于 01-29 14:10 1次下载

    Arm®Cortex®-M4 32位MCU GD32F303xB数据手册

    电子发烧友网站提供《Arm®Cortex®-M4 32位MCU GD32F303xB数据手册.pdf》资料免费下载
    发表于 01-14 09:54 0次下载
    Arm®<b class='flag-5'>Cortex</b>®-<b class='flag-5'>M4</b> 32位MCU GD32F303xB数据手册

    Arm®Cortex®-M4 32位MCU GD32F303xx数据手册

    电子发烧友网站提供《Arm®Cortex®-M4 32位MCU GD32F303xx数据手册.pdf》资料免费下载
    发表于 01-14 09:49 8次下载
    Arm®<b class='flag-5'>Cortex</b>®-<b class='flag-5'>M4</b> 32位MCU GD32F303xx数据手册

    GD32A490 Arm®Cortex®-M4 32位MCU用户手册

    电子发烧友网站提供《GD32A490 Arm®Cortex®-M4 32位MCU用户手册.pdf》资料免费下载
    发表于 12-14 10:30 3次下载
    GD32A490 Arm®<b class='flag-5'>Cortex</b>®-<b class='flag-5'>M4</b> 32位MCU用户手册