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

发布时间:2024-01-05  

写在前面:

本文章为《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开发资料 2-程序源码ARM体系结构与接口技术Cortex-M42_KEY】

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

实验现象

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>