写在前面:
本文章为《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综合项目实战篇等。d=622457259672
资源扩展板介绍&资源扩展板可开发项目
硬件介绍
Cortex-M4 外部中断
实验目的
熟悉STM32CubeIDE工具软件的使用。
掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。
学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口作为外部中断输入。
实验环境
FS-MP1A开发平台
ST-Link仿真器
STM32CubeIDE开发软件
PC机 XP、Window7/10 (32/64bit)
实验原理
本实验的原理主要是,通过开发板上按键K2的外部中断方式读取键值即IO口状态,控制LED点亮、熄灭查看实验现象。
配置IO口外部中断的步骤:
使能 IO 口时钟。
初始化 IO 口模式,触发条件。
配置中断优先级( NVIC),并使能中断。
在中断服务函数中调用外部中断共用入口函数 HAL_GPIO_EXTI_IRQHandler。
编写外部中断回调函数。
通过以上几个步骤的设置,我们就可以正常使用外部中断了。
实验步骤
打开STM32CubeIDE->File->New->STM32 Project
可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next
填写工程名,点击Finsh
点击Yes打开配置页面
搜索框内搜索LED对应GPIO引脚PZ5,左键点击设置为GPIO_output
搜索框内搜索K2对应GPIO引脚PA0,左键点击设置为GPIO_EXTI0
这里我们需要注意一下,和其他单片机不同,还需要继续设置“ Pin Reservation”给“Cortex-M4”,否则STM32CubeMX不会生生成GPIO初始化相关代码。具体操作:在刚才选择的引脚上,鼠标右键选择“ Pin Reservation”->“ Cortex-M4”。
在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码
完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码
可以在左侧工程文件夹找到EXIT_CM4子工程,打开stm32mp1xx_it.c
添加GPIO中断回调函数,自定义延时函数
C++ Code
1234567891011121314151617181920212223 | int i = 0;int j = 0;void delay_my(uint8_t time){ for(i = 0; i < time * 10; i++) { for(j = 0; j < time; j++) {} }}void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin){ delay_my(10); if(GPIO_Pin == GPIO_PIN_0) { if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_SET)/* read PA0 state */ { HAL_GPIO_TogglePin(GPIOZ, GPIO_PIN_5); } }} |
上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料 2-程序源码ARM体系结构与接口技术Cortex-M43_EXTI】
配置完成或导入工程后进行程序下载,具体步骤参考12.3.3节进行开发板连接,程序编译、下载
实验现象
按下K2键,可看到LED灯状态发生改变
上一篇:stm32mp1 Cortex M4开发篇5:串行通讯接口
下一篇:成本低、易于编程控制的DLP投影STM32单片机驱动电路研究设计
推荐阅读最新更新时间:2024-10-30 16:24
设计资源 培训 开发板 精华推荐
- NCV2002SN2T1G高端电流检测典型应用电路
- AS5245-DB,AS5245 可编程磁性旋转编码器演示板
- 用于背光 LCD 面板的 LED 的 60 个 LED 背光 LED 驱动器
- 使用 Analog Devices 的 LTC3728LEUH-1 的参考设计
- 用于电池充电指示器的 NCP301LSN12T1 1.2V 电压检测器的典型应用
- 具有 6V 栅极驱动器的 LTC3892IFE-1 高效率、双通道 3.3V/8.5V 输出同步降压转换器的典型应用电路
- X-NUCLEO-S2915A1,低于 1 GHz 915 MHz 射频扩展板,基于用于 STM32 Nucleo 的 S2-LP 无线电
- 9pin 2to8 usb-hub
- 使用 Analog Devices 的 LT1120AIS8 的参考设计
- NCV7381AGEVK:FlexRay ® 收发器,Clamp 30 评估套件
- 用心分享,一起成长!EEWORLD月月有奖优秀主题/回复第28期开始啦~
- 了解ADI电网管理、能源计量方案,答题赢Kindle、《新概念模拟电路》【世健的ADI之路主题游 能源站】
- 闯关赢好礼!美光出货 232 层 NAND,扩展 3D NAND 技术边界
- vishay消费知识大闯关正式开始
- 直播已结束|贝能国际新型玻璃破碎检测方案
- 下载《Altera SoC深度体验》,打分评论赢好礼
- 学AM335X课程,赢超值BB-Black团购资格,更有DIY大奖赛预热中!
- 国产FPGA有奖直播:安路全新FPSoC产品SF1系列(FPGA+MCU),Demo板介绍和案例解析
- 一道题,测试你是不是MSP430的真爱粉儿~