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

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

[复制链接]
zhjb1 发布时间:2018-12-24 08:09
这项测试是一个所有到手的开发板的必做,本实例也不例外。" x1 T! `* r9 Q+ B0 R$ X
首先打开main.h文档,可以看到在STM32CubeMX中定义的命名引脚,本节仅列出LEDx的定义,见下列表:# P6 s8 o. S/ i
#define LED3_Pin GPIO_PIN_15
$ Q4 I- w' U- K) @9 x- v+ b#define LED3_GPIO_Port GPIOA$ |1 J: t" h  w$ e/ m4 j  P& ?
#define LED0_Pin GPIO_PIN_10
9 v8 S0 y8 a: ]& ?* {0 U8 Z0 X  x7 y#define LED0_GPIO_Port GPIOC
" y: U( E& b5 k4 k" R, U#define LED1_Pin GPIO_PIN_11
' S$ v& w$ o. |: L) t#define LED1_GPIO_Port GPIOC
" ^! q3 q+ G7 U3 A#define LED2_Pin GPIO_PIN_12
( j( Y% u* U1 O& v#define LED2_GPIO_Port GPIOC+ I9 E/ E) z# J, i  m$ i
PC_10~12,和PA_15,4个LED的IO口。
  }& s& b) l. `# O. ~5 [# Z# L打开gpio.c可以看到定义的LED0~LED3的语句,当然,此文档所有定义的引脚都有:% y+ r, H5 n, O9 x" _  j3 V
//Configure GPIO pin : PtPin
1 S& {, M: R( I5 a  GPIO_InitStruct.Pin = LED3_Pin;; k+ p/ ]9 a' I4 y* C: _0 w
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
" F, V5 C2 M7 h/ X  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;' Q7 ~( |% r, B* h4 x
  HAL_GPIO_Init(LED3_GPIO_Port, &GPIO_InitStruct);4 G% e  l1 I  ?1 w( l
//Configure GPIO pins : PCPin PCPin PCPin
) l3 ]/ U/ e' n+ h6 R) j: j  GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;9 E$ n9 D2 h/ b5 Z  Q7 h8 p
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  d4 ]1 {* G5 r9 R# B2 ]  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
; k/ F$ X* @, S  {  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
( _: @0 l4 o# R2 B驱显LED的设置定义代码已好了,下边需要在主函数中定义驱显,本例计划轮显的方式。
+ y- C5 P. e8 t4 q1 f/ D0 |0 B在开头定义一个整形变量:
9 Z2 |% H% S. U+ t# I- k0 Uint ledk=0;+ W" E6 b+ p5 w9 o( R1 S
定义一个轮显函数,用switch case函数,代码如下:7 D) ]2 Z6 u3 R" z3 t4 j8 G" a. b
//TEST LEDs* ^9 i' E6 V" U8 C! [
void ledTest(void){
9 Q# Z: ^* r; e1 C switch(ledk){
7 i0 Q0 J# K  x3 L5 Y2 t( m0 W  Y' Q  case 0:
, @& n8 e% Q1 c+ a! [) Q# `4 }                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_RESET);
$ y% @( Y/ Q  m% w8 X                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
  B1 T+ F+ r; r) V, A                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);% ^3 ^7 t0 @% }1 v1 }
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
* G# s  O8 t8 m) e9 q6 o5 |! E          ledk++;break;
9 X  E4 O0 H& p& d8 Q" \  case 1:9 t, f5 r6 Q2 ~& t" B7 n( h& r5 ]/ g
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);/ w* k* ^. p2 }  @; L; k: U) w
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_RESET);; y2 q5 w* N+ f, h8 |# Q
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
3 O* g7 N; I! s                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);8 I" ~3 Q! L8 ]* [% |2 s
          ledk++;break;
4 _: C- f" q: Y9 D  case 2:
& I7 K; W( v7 E, S6 e, A7 L. i                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);7 m  K! [# ^+ Z4 {1 _
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);# p4 r4 [. K! i5 b
                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET);( m& u* g! b: p# H7 l
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);
  L# f2 r8 b, k. o          ledk++;break;$ S1 M& _# R' Q4 U9 ~
  case 3:) y1 i9 e9 ]7 ^) G! T
                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);
* y" ^8 d2 y& N: Y                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
4 A0 G& a4 P3 B* P6 d                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
3 j4 d5 m- N; H  b6 }5 n; T                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_RESET);
: J1 j3 [' y7 a- S) D          ledk++;break;
, s% E# [, `# D8 K  default:
4 X# C8 D8 |) j9 s7 F4 t                HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET);+ A" u0 h7 n' V# x
                HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET);
; u+ V, n+ n/ n; w& m& f                HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);1 k) `  W* w2 a0 _- A* f2 o
                HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET);7 G! d3 k7 l5 C( G- \
          ledk=0;break;
6 S" L3 a2 P9 V }
4 s8 f4 {% |  r/ I5 Y}
# J  l  m3 o1 Z, E5 p/ n% z在主函数体内加上:& G' O2 P7 m4 P
ledTest();: U5 [; `, Z) b/ k
HAL_Delay(100);$ r' ~# q5 w! G; X- {4 R
编译下载就可以了,见GIF动画图片22_1。
6 ~' T4 k" V' j$ L+ ?
5 ]6 c* G* b. ]+ w; A8 c& |  N+ D8 B

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 手机版