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

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

[复制链接]
zhjb1 发布时间:2018-12-24 08:09
这项测试是一个所有到手的开发板的必做,本实例也不例外。5 c6 s; U6 Q) x( z* A% s/ m
首先打开main.h文档,可以看到在STM32CubeMX中定义的命名引脚,本节仅列出LEDx的定义,见下列表:9 }3 e1 O6 C3 d  d
#define LED3_Pin GPIO_PIN_15
5 j% _/ D* s5 d! m9 }5 L6 c2 c#define LED3_GPIO_Port GPIOA
( T3 W( A% e) }0 i" E$ D#define LED0_Pin GPIO_PIN_103 f4 l( K. Q( ^) ~( `- W
#define LED0_GPIO_Port GPIOC
; A+ _+ {8 p+ ?2 s" Y#define LED1_Pin GPIO_PIN_11
5 N) O& n, v# ]- M#define LED1_GPIO_Port GPIOC
! |4 F8 Q9 d* Y#define LED2_Pin GPIO_PIN_12
0 ~3 g- W) q& v6 U3 Z: a3 Q8 e#define LED2_GPIO_Port GPIOC
# }2 T3 G; Y- P2 t; g) D. K1 v- EPC_10~12,和PA_15,4个LED的IO口。
/ |3 z! F) p( D6 x2 c6 i# u打开gpio.c可以看到定义的LED0~LED3的语句,当然,此文档所有定义的引脚都有:
1 b3 l3 \2 T! N//Configure GPIO pin : PtPin
! c  d  B! B8 k) T+ q* A( a% f  GPIO_InitStruct.Pin = LED3_Pin;1 |- m. j/ ]/ {% d  J/ Y- f) g
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;' q$ J' F( t: B' B3 l- f0 w( d
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;! p. R0 L3 t/ L( Y+ e3 T
  HAL_GPIO_Init(LED3_GPIO_Port, &GPIO_InitStruct);
9 i" \) v4 J6 O5 X//Configure GPIO pins : PCPin PCPin PCPin- e( f7 {* U  |: E/ ~2 D% ?- c
  GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
2 o, g+ O. V% z. X  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
% h; h8 c9 ^5 a" s  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
/ f2 ?) t/ ?7 G* }- ?  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1 W6 r9 ?! w5 [6 ?. q驱显LED的设置定义代码已好了,下边需要在主函数中定义驱显,本例计划轮显的方式。
- p0 x! ]" P. @7 i2 [6 \% q在开头定义一个整形变量:' J4 C: V( t$ P2 K  S" j1 x% Y
int ledk=0;
6 d- R  \, f! q6 y, F1 B定义一个轮显函数,用switch case函数,代码如下:
' H* r, `; e+ R$ `0 i//TEST LEDs
$ P' E1 ~8 ^+ a/ Avoid ledTest(void){& _( C4 D; y% p# q6 d7 K8 n5 @
switch(ledk){: A" k1 R; P: ~; u8 f9 V& V5 o/ o
  case 0:  G3 m8 e; X" e4 k+ |4 R
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_RESET);
5 W/ m! p" k7 P& N                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
7 u" E# p) e# d/ A8 A                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);3 w" K8 o! D: j7 p' ~
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
- C7 h' @! E, j$ G9 k$ y) }          ledk++;break;6 J/ h: d1 z, v7 L! z7 _
  case 1:( A, _6 q5 m& W2 i6 O, }
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);
3 K6 s8 j2 ]* X                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_RESET);
, A1 a" q$ e! e0 @                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
1 i( l$ V; g) t1 V                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);2 d" T" M2 R# ]# S& o$ O3 X
          ledk++;break;5 r+ }. d2 m. _5 P4 ?  n
  case 2:
. |+ T5 E4 W2 }& W                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);
& E2 P4 o/ w# V4 N: T+ T7 Y                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
/ |; Q% e/ e! r- b  `* d                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET);
% d; F; [+ F) R0 w  i                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
1 \4 ^+ v6 ^5 n0 z          ledk++;break;
( o3 T: S1 }) J7 S, N4 g7 n, }* W  case 3:
+ Q6 t& l. A/ a# ~! |) ]4 I; `                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);2 {; C7 V) N/ k" `' I$ c, p
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);3 U' y, D, S' t+ N! p  \% G
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);' e. A+ U% Q6 R' ]! D7 U
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_RESET);. v: w' X4 O% g1 I; u" e# P
          ledk++;break;5 ^( P  C4 h7 C4 C3 l) b8 F
  default:: t' ]- G$ K4 c" _
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);
5 x" \  i: j+ g% g                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);6 H5 l: X3 B- s# T. J: Q
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
3 i, }$ v& e# L4 u1 s! v+ ?                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
6 }8 e  Z% T# V* g* e          ledk=0;break;& \* r$ w7 w1 ?# F* M
}; }( h0 F: F5 m+ ~
}  f  U; b- G% Y! B5 H: |
在主函数体内加上:/ b% A0 a! I4 E$ ]1 X  X, f
ledTest();
% Y# k5 d. q2 ^7 G6 t  SHAL_Delay(100);' V: w) S  N) O" R4 z1 P
编译下载就可以了,见GIF动画图片22_1。
4 S+ a& o* m* _9 D0 u3 h  y
, a7 L5 {, @% V: v

22_1

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

举报

1个回答
zwei99999999 回答时间:2018-12-25 01:47:46
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版