STMCU小助手
发布时间:2022-10-2 09:47
|
1.资源扩展板介绍 1.1硬件介绍
6 B; K# V' R" z3 C" O& z 1.2资源扩展板可开发项目7 f" x" H% N) e' y- u7 a9 U. y ; z+ {& M5 Q' i* O
/ h2 e; } ?5 T" j 2. Cortex-M4 外部中断 2.1 实验目的 熟悉STM32CubeIDE工具软件的使用。* @0 ]/ T; s" v! b( { * K8 h- [+ R& {4 x& g) b 掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。7 ?! z y: J( H5 V 8 K2 b3 z$ y. A: C" o* n$ q& G 学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口作为外部中断输入。 2.2 实验环境# {. d5 X$ P, J. z FS-MP1A开发平台1 Y9 F; i3 F/ I , a4 Z* Q! m3 I' l ST-Link仿真器 # q' c* n/ h$ F. R( |: P STM32CubeIDE开发软件& s% _) `1 Q+ T$ F PC机 XP、Window7/10 (32/64bit)* U% K7 V1 z( h$ |% V/ d 2.3 实验原理 本实验的原理主要是,通过开发板上按键K2的外部中断方式读取键值即IO口状态,控制LED点亮、熄灭查看实验现象。
, G1 a$ c. c; r$ v0 h( y . L0 c) H: t3 i+ k; Y: Y
# r* _1 Q$ z, U8 ]) n( y) C9 U 3 s5 K3 |6 n( l" k X3 a0 s8 _ 配置IO口外部中断的步骤: - q( n( n: y( m7 @) c$ }0 @7 r 使能 IO 口时钟。0 E: b1 ~9 D( h- n. f+ k 初始化 IO 口模式,触发条件。$ U# d) {0 T" _& r. A9 c% x 配置中断优先级( NVIC),并使能中断。 " I ]) s+ H7 _5 L" | 在中断服务函数中调用外部中断共用入口函数 HAL_GPIO_EXTI_IRQHandler。, g; C1 X+ _+ _3 X ) ?3 w9 J+ R% M4 b$ } 编写外部中断回调函数。 ; W4 p7 Y% U6 Y% C. B" w) A 通过以上几个步骤的设置,我们就可以正常使用外部中断了。 2.4 实验步骤6 R7 @! Y, i- d1 ]6 M3 ?% R 打开STM32CubeIDE->File->New->STM32 Project ( J; K `3 X: L+ c( L, s
可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next 9 W( T3 ]& H, d! i
8 a% B: g I5 v4 z& Y. ~ 填写工程名,点击Finsh % d$ r! H& ]* ]( u8 r& k' g8 q
2 v2 R" I; @. C! Z 点击Yes打开配置页面 7 x) U) x0 x7 D
搜索框内搜索LED对应GPIO引脚PZ5,左键点击设置为GPIO_output6 A+ }3 N: J8 n% h & S. y, ]3 d0 k: _+ Z 搜索框内搜索K2对应GPIO引脚PA0,左键点击设置为GPIO_EXTI0 ) q% e+ \. Y2 Q: @5 p% [6 J
这里我们需要注意一下,和其他单片机不同,还需要继续设置" Pin Reservation"给"Cortex-M4",否则STM32CubeMX不会生生成GPIO初始化相关代码。具体操作:在刚才选择的引脚上,鼠标右键选择" Pin Reservation"->" Cortex-M4"。
! \) I" E* ]: H" H* x 在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码 $ P2 U+ |' Z5 u* {$ N- `! [
' o7 K; d& X, Q3 J7 c: f- L" |' j3 y+ e 完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码 / p) S( E `; N+ j- D: P2 a5 |5 C1 E
: d. I. z/ P; [ 可以在左侧工程文件夹找到EXIT_CM4子工程,打开stm32mp1xx_it.c 7 ~) P9 H4 q; h4 K! T 添加GPIO中断回调函数,自定义延时函数% V- v* S6 I3 t5 r# S: D C% `) A, B C++ Code
上述为新建工程配置过程,可参考16.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\3_EXTI】 ! f5 H# s) v" X) H5 n 配置完成或导入工程后进行程序下载,具体步骤参考16.3.3节进行开发板连接,程序编译、下载# F4 G/ ?* h& R7 s; J 2.5 实验现象; N& k- R/ O5 B 按下K2键,可看到LED灯状态发生改变 ———————————————— 版权声明:华清远见IT开放实验室 $ H: U( J, J+ l% F( h3 C" T / N6 M: o4 u' Q1 F/ ~8 n |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版