你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32C0评测】3、GPIO测试

[复制链接]
qintian0303 发布时间:2025-5-2 00:12
      本次测评的第一个基础任务是GPIO测试:使用外部中断控制小灯点亮熄灭,实际上不管是外部中断还是小灯的亮灭控制,都是对GPIO的基本控制,一个是输入附带中断,一个就是纯纯的输出控制,这里我们将在上一个例程的基础上通过对STM32CubeMX对单片机进行配置然后实现这些功能,毕竟上一个历程中实际上并没有对任何控制引脚进行配置,只不过有最基础的一些系统配置,保证芯片可以运行起来。
! }, Q+ d: h4 ~" f5 n' y8 P9 v% w      我们看一下时钟的配置:
" O  S4 i9 O5 F
1.png
& Q1 q  J5 L8 p" i
: g5 g3 }3 l) _9 x! j
      目前已经配置为最大的48MHz的系统时钟,使用的是内部的振荡器,这里我们就不修改了,虽然板子上配备的高速外部时钟,对本次测试的影响不大。
2 C- U; d% W1 S  e% X! J! d      首先看一下对应的灯的原理图:$ h- a1 E4 n7 w2 k% i
2.png
; s( H1 t( }# z# ~

( J& b* F3 H- ^4 l7 p      本开发板上一共配备了2个可以自定义的LED,LD1是绿灯,可以通过PA5引脚进行控制,LD2是蓝灯,可以通过PC9进行控制,通过原理图进行分析,当PA5为高电平时LD1亮起,PC9为低电平时LD2亮起。0 e, M4 r/ B6 Z
      再看一下按键的原理图:+ p& I4 M# R6 Y- X( b6 ^
3.png
/ ?- e& e# E$ A0 ]
$ x/ }9 x% @: E, h
      按键还是老样子,连接的是PC13引脚。# A& s5 z- H( S
      接下来我们看一下STM32CubeMX中的配置:( ~! w- R, E6 g
      按键配置为外部中断:
3 f4 K, ]8 v2 L3 p- R
4.png # x- y' o1 E; K. X

' i& ]1 I  c1 ?/ n      并修改为下降沿触发:6 O% P0 {& ^" `+ U; \
5.png
$ Z6 v5 `: l0 A  _

6 x3 Q3 l2 h, }* o+ q' f      开启中断:
. ?+ P$ P0 \8 s  o$ f! T6 n
6.png 8 Y# J, n: v% W- U: e
8 M4 l' z7 I! T& V
      LED的输出控制配置就比较简单了,配置为输出:
1 M+ Z+ u. D5 }- O& r6 g
7.png
) E) A$ ]/ H- W+ N0 ~! N3 U, b, s* E

5 A) D4 W+ @& ~3 h! Q! H4 [/ [      简单改一下配置让灯初始状态为灭的:4 z9 ~; i  k) r! Y+ Z- g9 E
8.png 5 @7 X; B+ Z. A+ y

: K: M! ]+ V( ^: q3 h; q3 q; h      另一个灯的控制引脚的处理是一样的。
4 O3 F# Y( @; C7 d$ a. \9 d      软件方面咱们主要写的就是外部中断的回调函数,这里注意一下,这次看到主要的中断是下降沿触发,对应的是HAL_GPIO_EXTI_Falling_Callback(GPIO_Pin);重写如下:
$ i" P1 C) K/ ]+ C" t8 T
  1. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin); `% ]0 y( k- n
  2. {  d6 W; I! j' r, T' h5 o% ]
  3.      if(GPIO_Pin == GPIO_PIN_13)  N' j9 a% M8 X) n, L& \9 [
  4.      {2 A) T9 B7 Q5 Z! ?$ e' }
  5.             HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);- a4 a% K3 ]: X! `8 s
  6.             HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);# @9 \7 \# t" v# q' o
  7.      }1 v; ~1 W$ s3 Q: R2 G
  8. }
复制代码
     这里有一点注意一下,我们在最开始按键引脚配置的时候选择的不上拉不下拉,这样是不可以的,因为这个板子按键的物理上拉电阻竟然没有给,这个成本的节约有点太明显了。
; c" C) h* D0 E      效果如下:/ w2 H: I7 g: Q) d
GPIO测试 (1).gif
+ l# D0 ~8 U$ o  g7 v  T
0 i" p. x4 h$ |8 n
: V; M/ u* z; g9 `5 D% M( e

+ V' T/ H+ H3 d' H% P# u, |0 Q
" x+ C$ a4 K  o& ~' q0 Y; I4 `
0 o1 e3 G% S( E7 _- }
7 n2 h( k+ v  `/ }5 P, u0 h: G) m
: w" r6 m- c; \# N7 V; Q+ ?0 f3 D+ e) H* E" |" w

, I$ n9 |& `& y! b0 H9 ], |8 p( ~7 u2 z

# k" _/ j/ j0 h; Y0 v& e8 h2 I
赞 收藏 评论0 发布时间:2025-5-2 00:12

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版