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

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

3天内不再提示

stm32mp1 Cortex M4开发篇3:使用GPIO扫描检测按键

华清远见工控 ? 2021-10-18 18:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面:

本文章为《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

Cortex-M4 按键扫描

实验目的

熟悉STM32CubeIDE工具软件的使用。

掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。

学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口读取按键状态。

实验环境

FS-MP1A开发平台

ST-Link仿真器

STM32CubeIDE开发软件

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

实验原理

本实验主要通过调用函数HAL_GPIO_ReadPin读取开发板上按键K2的IO口状态,控制LED灯的点亮和关闭状态。

该实验需要使用到开发板上的LED灯,按键,相关硬件电路如下:

pYYBAGD1gMaAQjUCAABhgLxTTZM620.png

pYYBAGD1gMqAeugsAABL_f8VtiY304.png

poYBAGD1gM-AUbhzAAAZU-WX2Vw836.png

实验步骤

打开STM32CubeIDE->File->New->STM32 Project

poYBAGD1ME2AVPeTAACVnz-qkMk546.png

可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next

poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg

填写工程名,点击Finsh

poYBAGD1gNyAHuVeAABXW_G8guw110.png

点击Yes打开配置页面

pYYBAGD1MFqAKmnWAAAp3TMlYLo989.png

搜索框内搜索LED对应GPIO引脚PZ5,左键点击设置为GPIO_output

搜索框内搜索K2对应GPIO引脚PA0,左键点击设置为GPIO_Input

pYYBAGD1gOWAdLSiAABFU1Ac02I471.png

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

poYBAGFs8ByARHi2AAC8qUXiRrg696.jpg

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

poYBAGD1MGmAams0AACpGOkAn0s579.png

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

poYBAGD1MG2ADAi6AAAgBCPP1k8477.png

在main.c中调while循环中添加GPIO读函数,判断K2引脚高低电平,改变LED灯状态

pYYBAGFs8ByAeHPQAACppjoW5A4026.jpg

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

配置完成或导入工程后进行程序下载,具体步骤参考12.3.3节进行开发板连接,程序编译、下载

实验现象

按下K2键,可看到LED灯状态发生改变

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

    关注

    6069

    文章

    45104

    浏览量

    654156
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9396

    浏览量

    379962
  • 嵌入式
    +关注

    关注

    5161

    文章

    19792

    浏览量

    319797
  • Linux
    +关注

    关注

    88

    文章

    11537

    浏览量

    214926
  • 开发板
    +关注

    关注

    25

    文章

    5776

    浏览量

    106547
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    stm32H745 M4核不能调试和下载怎么解决?

    stm32H745 Keil 调试时M7核可以下载和在线调试,M4核时就出现!如下问题,但是用!STM32CubeProgrammer能下载M4
    发表于 07-24 06:26

    【RA-Eco-RA6M4开发板评测】+初识

    RA-Eco-RA6M4开发板是一款基于 Arm? Cortex?-M33 内核的开发工具,且具有1
    发表于 07-16 19:06

    使用STM32CubeIDE调试STM32MP157D的M4内核时报了下图这个错误,怎么解决?

    我使用STM32CubeIDE调试STM32MP157D的M4内核时报了下图这个错误: 经过我的排除后发现,应该是STM32CubeIDE上传&quot
    发表于 06-18 06:57

    【正点原子STM32MP257开发板试用】介绍、上电测试、系统连接

    STM32MP257DAK3 STM32MP257 应用处理器 (STM32 MPU) 基于运行频率 1.5 GHz 的双 Arm? Cortex?-A35 64 位 RISC 内核
    发表于 06-13 17:28

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 ?6次下载

    AS32X601驱动系列教程 GPIO_按键检测详解

    led熄灭。 硬件设计 评估板板载三个机械按键,分别接入MCU的PE10、PB4、PB3,当按键按下时,控制引脚通过按键接地,表现为低电平,
    的头像 发表于 05-23 16:44 ?358次阅读
    AS32X601驱动系列教程 <b class='flag-5'>GPIO</b>_<b class='flag-5'>按键</b><b class='flag-5'>检测</b>详解

    stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?

    stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写
    发表于 05-19 15:06

    【米尔-STM32MP257开发板试用体验】初次体验米尔-STM32MP257开发

    257D是ST推出的搭载了双核Cortex-A35 @1.5 GHz和Cortex-M33 @400 MHz的微处理器。米尔电子基于STM32MP257D推出了MYD-LD25X开发
    发表于 04-30 16:21

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 按键操作

    开发环境: IDE:MKD 5.38a Renesas RA Smart Configurator:v5.1.0 开发板:RA-Eco-RA4M2 MCU:R7FA4M2AD3CFP
    发表于 04-27 23:09

    使用STM32CubeIDE调试STM32MP157D的M4内核时报了错误怎么解决?

    我使用STM32CubeIDE调试STM32MP157D的M4内核时报了下图这个错误: 经过我的排除后发现,应该是STM32CubeIDE上传"
    发表于 03-14 06:01

    ST×米尔STM32MP25x高阶实战培训会

    STM32MP25x是ST推出的搭载了双核Cortex-A35@1.5GHz和Cortex-M33@400MHz的微处理器。米尔电子基于STM32MP25x推出了MYD-LD25X
    的头像 发表于 03-13 08:04 ?672次阅读
    ST×米尔<b class='flag-5'>STM32MP</b>25x高阶实战培训会

    如何关闭STM32MP1 Developer Package开机默认的gtk演示程序?

    如题,如何关闭STM32MP1 Developer Package开机默认的gtk演示程序
    发表于 03-13 06:03

    ST×米尔STM32MP25x线下培训会倒计时12天

    STM32MP257D是ST推出的搭载了双核Cortex-A35@1.5GHz和Cortex-M33@400MHz的微处理器。米尔电子基于STM32MP257D推出了MYD-LD25X
    的头像 发表于 12-26 08:04 ?492次阅读
    ST×米尔<b class='flag-5'>STM32MP</b>25x线下培训会倒计时12天

    ST×米尔STM32MP25x线下培训会

    STM32MP257D是ST推出的搭载了双核Cortex-A35@1.5GHz和Cortex-M33@400MHz的微处理器。米尔电子基于STM32MP257D推出了MYD-LD25X
    的头像 发表于 12-06 01:00 ?722次阅读
    ST×米尔<b class='flag-5'>STM32MP</b>25x线下培训会

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

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