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

【STM32C0评测】3、GPIO测试

[复制链接]
qintian0303 发布时间:2025-5-2 00:12
      本次测评的第一个基础任务是GPIO测试:使用外部中断控制小灯点亮熄灭,实际上不管是外部中断还是小灯的亮灭控制,都是对GPIO的基本控制,一个是输入附带中断,一个就是纯纯的输出控制,这里我们将在上一个例程的基础上通过对STM32CubeMX对单片机进行配置然后实现这些功能,毕竟上一个历程中实际上并没有对任何控制引脚进行配置,只不过有最基础的一些系统配置,保证芯片可以运行起来。
% m3 d+ i9 a9 H$ }4 ?! d# ?5 @& p      我们看一下时钟的配置:2 O. ?. q. z. W: C5 v
1.png   _: b3 X' U+ A  f3 t. _; K  g! a
+ f6 c& `) s9 D, ?$ W% o
      目前已经配置为最大的48MHz的系统时钟,使用的是内部的振荡器,这里我们就不修改了,虽然板子上配备的高速外部时钟,对本次测试的影响不大。2 F% [" T- j  u  L  J: O/ @$ Z. D0 i
      首先看一下对应的灯的原理图:
9 E9 ], s3 I( G5 h5 n7 Q5 X
2.png
% F+ J2 D% o0 ]- ~7 l6 d

& e  o5 E; `' d* {      本开发板上一共配备了2个可以自定义的LED,LD1是绿灯,可以通过PA5引脚进行控制,LD2是蓝灯,可以通过PC9进行控制,通过原理图进行分析,当PA5为高电平时LD1亮起,PC9为低电平时LD2亮起。
& A, j* h9 L% K5 q6 [1 k      再看一下按键的原理图:3 `" d  D  b" f/ p2 b
3.png 5 i' y# `/ c7 d: N
  y' N4 x" G6 P- S4 Z& {; V; z
      按键还是老样子,连接的是PC13引脚。0 n7 R1 W- @" O
      接下来我们看一下STM32CubeMX中的配置:6 K, t5 }. n# I$ k
      按键配置为外部中断:- D" s# j: o* W4 E6 z
4.png
" `7 O! W. ?; _4 w/ r$ R
# ~6 p: ^! O1 O7 ]
      并修改为下降沿触发:
& n# w- p' R. _7 |
5.png $ |/ t" }3 P  W' [) D
. g; F1 h! a. G+ ^* j/ c; i# G
      开启中断:
0 c3 o4 d4 D7 j/ W% m
6.png 3 ]7 q" Z; ]% j& V2 x3 O

) V5 p- ]5 Q6 _- M      LED的输出控制配置就比较简单了,配置为输出:
8 y. l( |# @  U) f
7.png " X0 Z3 N7 K$ `" S8 Q! R

% y6 C' o& t" ~- Y8 V      简单改一下配置让灯初始状态为灭的:1 j1 v. s2 B/ t5 l5 o
8.png
% a. R& ^; l* [- p9 ~, n# V2 t
5 V1 G8 [6 d# ^0 e( a; c
      另一个灯的控制引脚的处理是一样的。8 ~0 ^" }) I( p0 ~
      软件方面咱们主要写的就是外部中断的回调函数,这里注意一下,这次看到主要的中断是下降沿触发,对应的是HAL_GPIO_EXTI_Falling_Callback(GPIO_Pin);重写如下:
1 j3 W/ e5 B) W& Q. Z# v$ V% y5 f4 @* A
  1. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)7 J7 B2 B8 Y$ L( E  D
  2. {/ L- K0 E+ Y7 X# E
  3.      if(GPIO_Pin == GPIO_PIN_13)
    : Z( q6 w1 j9 B( x6 Y. V5 n, h
  4.      {
    - K( N" ?/ k' E  n. @  ?7 q
  5.             HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);
    % z7 O. q+ _: ~0 K) l
  6.             HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
    7 E' a% J% w+ }) m' |) s
  7.      }0 ], t3 W7 d1 G8 J8 {/ I  V
  8. }
复制代码
     这里有一点注意一下,我们在最开始按键引脚配置的时候选择的不上拉不下拉,这样是不可以的,因为这个板子按键的物理上拉电阻竟然没有给,这个成本的节约有点太明显了。3 J2 ~; ^% u  C' ~
      效果如下:
  U4 I0 s* h% a* m( u
GPIO测试 (1).gif
; ]8 W! N  |. N2 l: ?5 Q( b6 Q8 O% s

# k2 a- l7 q2 w* i5 r
# v) n2 q6 @6 N3 T$ N8 c8 B4 \5 Y' f1 K7 |; c
6 ^8 A1 v/ Z$ w! C

/ P2 X1 A# R. X# N3 E6 p, J' ]+ ~2 Y$ g) W

; {  U3 }/ Y9 E+ X9 \6 X: W2 o3 c, _) @$ h! e$ M% h

$ b& H7 R  e5 x
" T; J9 @' R5 U; g; ]# O6 e6 O1 ]0 l/ r' m
收藏 评论0 发布时间:2025-5-2 00:12

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版