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

[自设STM32F103VET6测试LCD]3、GPIO测试

[复制链接]
zhjb1 发布时间:2018-12-24 08:09
这项测试是一个所有到手的开发板的必做,本实例也不例外。
6 O, n4 z7 w. E首先打开main.h文档,可以看到在STM32CubeMX中定义的命名引脚,本节仅列出LEDx的定义,见下列表:- y* `/ ]  j) J  Z& T
#define LED3_Pin GPIO_PIN_15
/ u1 O6 G7 }2 t8 E#define LED3_GPIO_Port GPIOA
, t+ l( K, l+ G& H$ c#define LED0_Pin GPIO_PIN_100 v8 H6 l; ]4 E" d
#define LED0_GPIO_Port GPIOC. R1 i5 F. x8 M- x# {6 O. s
#define LED1_Pin GPIO_PIN_11& B6 t7 q6 D; R+ p* g
#define LED1_GPIO_Port GPIOC
5 J8 D0 z1 |* A6 V; M) @- ^7 t#define LED2_Pin GPIO_PIN_12# o- T  @, K5 @1 k, ?/ e3 `8 `
#define LED2_GPIO_Port GPIOC
. h& U$ P) G" f, fPC_10~12,和PA_15,4个LED的IO口。
0 B6 T' c; P+ r打开gpio.c可以看到定义的LED0~LED3的语句,当然,此文档所有定义的引脚都有:
& l3 o+ }$ ?$ \//Configure GPIO pin : PtPin
: d$ g( I  o0 ^' K6 D  GPIO_InitStruct.Pin = LED3_Pin;9 |% N- H6 w) d; B. ?- }
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
) o3 G4 b+ ~$ k) R  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;: j/ I, j; h* J0 R) ]% i) T1 K( |; v
  HAL_GPIO_Init(LED3_GPIO_Port, &GPIO_InitStruct);
, ]. s8 b, U4 n8 o6 F9 H3 ~//Configure GPIO pins : PCPin PCPin PCPin
' y: I; D, M( q  GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
* u/ W/ g3 t, N  k- J& Z  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ D' F3 b) E7 ~1 q/ U- l  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;1 W9 v" ~3 }3 L' J
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
: D% N4 Y9 P) }5 h) l: M# t驱显LED的设置定义代码已好了,下边需要在主函数中定义驱显,本例计划轮显的方式。
9 r7 A) J3 x9 S在开头定义一个整形变量:
5 z7 O! M' ]  Z, y3 H9 sint ledk=0;
) R+ F* G* f# O- K定义一个轮显函数,用switch case函数,代码如下:) L8 U, U5 F8 H- a+ |7 L
//TEST LEDs
! B6 e; x  R' K2 p! Tvoid ledTest(void){
& q( ?1 d0 f9 a: @9 t. N; I switch(ledk){- d7 @1 t8 h8 [/ f, T4 h- @
  case 0:
, P9 M) J2 ~+ D% N+ r: E4 v5 q                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_RESET);
+ e! Z$ v" Q4 n6 y                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);3 n5 a, U5 L4 w0 M+ X5 z
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);2 @4 m% B2 G, {: C
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
$ F- C1 j0 ^; ^; k0 C% r4 p          ledk++;break;
  m! g0 |/ X/ D0 g) d  case 1:& J: L% h" ?6 @
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);/ ~9 Z$ C4 c2 r
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_RESET);. B' p$ m1 r2 h0 J+ B# P
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);1 E: J" ?5 R% L( }
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);( ?3 c1 q- T" A( J
          ledk++;break;
- l$ ~* [  ?' k8 m  case 2:& {. Q# {) Z6 ?- Z/ F
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);/ b/ E% u: x' V& z+ o
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
8 d9 K; ]6 I0 Z2 z7 D1 x" [3 c/ ^                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET);
7 k  p* ?1 G& d$ m6 h' [, k                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);% G( C* k. N" [, D; S
          ledk++;break;
7 S& B; r. a2 p2 k  case 3:% ?: t5 ]$ L+ Y. i6 Y8 F, S# a
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);$ r. \( P+ s4 T5 O! X5 V5 R8 J
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);' g+ X0 R; A' M# F! v! s+ M
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);1 J5 N' Z$ n% r9 N0 N
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_RESET);( n5 |% N) q2 e4 z2 n
          ledk++;break;
% i! b( O5 c7 D/ j2 ~$ n  J7 ?. Q- y  default:
& T8 y- Z+ k, N/ d0 x( A                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);; R1 q5 F* K* Y$ U
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
6 P) Y6 u6 P5 A& H; }& K0 Q, q/ n                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
7 \" N; K! M( P1 X                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
2 q8 u" O: }$ {- S1 Z+ U. R          ledk=0;break;
. H0 J; X' {8 g2 g: k4 @$ C) v }
) i0 x5 n! |% y  x1 ?5 t' [/ w7 M}
, w0 |: k+ G* J8 S4 [在主函数体内加上:* O/ `$ W) X3 M+ U2 N  q
ledTest();
$ A0 @5 J7 A  M4 P5 }& Q+ g$ NHAL_Delay(100);+ s) d  O0 I3 I( \+ E. ]2 s0 y
编译下载就可以了,见GIF动画图片22_1。
  m) Y6 J6 |0 r& I4 \% c# x
5 K3 o  l' X, \1 S7 q  S  O

22_1

22_1
赞 收藏 评论1 发布时间:2018-12-24 08:09

举报

1个回答
zwei99999999 回答时间:2018-12-25 01:47:46

所属标签

相似技术帖

官网相关资源

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