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

STM32F072 NUCLEO 咱也来点 个灯

[复制链接]
yceast 发布时间:2014-12-26 11:14
开发板到了,先点个灯吧,使用STM32CUBEMX,对HAL库还不是很熟悉,才开始还走了一点弯路,不知道HAL_GPIO_WritePin()函数如何设置,后来发现原来在这里, (_UYIJ2[9P$N6D}0B%}BAWR.png 呵呵,见笑了,参考了汇总帖才弄好。* k* r5 U& L4 Q- W  F2 J5 I' t
" Q$ Z+ g/ I  h: b4 t: [
以下是main()函数,总体感觉HAL库还是很好用的,要是有更详细的文档说明就更好了。
3 D3 O6 S) U% }/**
8 `/ {* t2 [# c: y  ******************************************************************************  a* i- d/ N' G0 r, \0 P3 T0 C
  * File Name          : main.c
' X% P. f8 V# @) p  * Date               : 25/12/2014 16:24:54+ w3 T0 w) ~7 O9 ~5 ?/ I" m
  * Description        : Main program body. U7 J# o  R3 }& j( h, E8 l+ b7 J
  ******************************************************************************
9 P# o8 q) w- r9 I4 U- k  *
  S" w; V& E( `# }. u. R  * COPYRIGHT(c) 2014 STMicroelectronics
  B' S% ^( g) ~2 w$ l( ^  *
' ]7 v# Y2 d' L/ Z6 K8 ?% S  * Redistribution and use in source and binary forms, with or without modification,6 o+ E& Z% x3 [& }6 e
  * are permitted provided that the following conditions are met:& p2 s% p# K. v8 r3 ^8 i3 ~
  *   1. Redistributions of source code must retain the above copyright notice,& S' E) `4 i) A
  *      this list of conditions and the following disclaimer.7 X; t; y" W4 l8 B( ]
  *   2. Redistributions in binary form must reproduce the above copyright notice,
1 ^* C6 Z! g: ^4 [. k* z- t  *      this list of conditions and the following disclaimer in the documentation
: n; Q2 T/ F4 U9 u9 X  *      and/or other materials provided with the distribution.( O8 T0 g' q! a
  *   3. Neither the name of STMicroelectronics nor the names of its contributors! |1 [! ~% V' k0 G3 a3 I, ?. R$ \7 x
  *      may be used to endorse or promote products derived from this software' k$ k: X0 W$ ^" z* w$ A. L, b
  *      without specific prior written permission.
& l8 S; Z, e  y# z: h  *
( x" i+ U  h% W6 r1 e  |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS") d/ V+ E9 o% f
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
" k* {$ P, S" H  N2 G/ T  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE9 n( b8 {/ n8 T; `. ~
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
& h$ e/ R& s. G* b3 P- p( l  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL$ D0 M! ?- T7 Q, {8 d
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
5 O! [1 U" d* I  i6 J( X; S  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
; u  Y' j0 G* g. j( G  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
" u! s- b  W) q) H: Z) s  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
% r' m5 F; u) D- t( j  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.- @5 [! f0 L- n) P* F  P
  *# B1 X9 \( i7 z0 {) Z7 V% W0 [
  ******************************************************************************% r6 m0 Q- D; T7 V. m
  */+ K) d  t, ~4 [0 s* B/ P

" t; Z9 Y' }- y4 p2 c3 R/* Includes ------------------------------------------------------------------*/0 r  l9 S$ [5 y+ {9 O8 [/ [7 d
#include "stm32f0xx_hal.h"1 J! V3 a; K2 n

# r  m1 j" `3 D! X% d% Y/* USER CODE BEGIN Includes */! ]% |3 ?6 I% v5 l- [$ ^  f6 Z
! \) ~! ]9 ?5 J9 ~
/* USER CODE END Includes */3 p+ l. ?* f" ~2 N' i7 ^9 @

% w- m$ @& Q/ ?: h/* Private variables ---------------------------------------------------------*/
3 p2 W: V$ w$ @( M  s; P3 m% G$ {' z  a; q2 L( e
/* USER CODE BEGIN PV */, ^1 D9 j# Q: V5 Y$ V- I

; {" f% J+ `$ @) r2 a/* USER CODE END PV */4 |% M0 `3 M' b$ E, m0 M# E
' B2 H' P& N: \. D6 Z, K4 y, [
/* Private function prototypes -----------------------------------------------*/7 Q6 m# l5 P2 e3 J4 v' t
void SystemClock_Config(void);
  ^( n3 |, d! Z( T& h3 pstatic void MX_GPIO_Init(void);0 z  j+ H/ Y9 X1 f& e6 x6 D- }

& N! b- g6 ^5 r/* USER CODE BEGIN PFP */
5 H, n) k  N4 @- M/ G# _* x+ _7 N" J! ?2 c8 h3 V% f) O
/* USER CODE END PFP */! y5 n* s/ G0 z- Q

. {& J! ~4 r% u7 K0 h/* USER CODE BEGIN 0 */, j# Y& ]% e9 }1 M" l, b
+ p3 M. K& g' C) e9 e& S' e0 q
/* USER CODE END 0 */
, I1 R- P( E) i+ t- A$ J( m
; P' g$ T( |# o" z. yint main(void)# i2 \; D& i6 V5 I' x( h! i
{+ k* o% F, s- c  T
+ C5 I( X! s8 z& E
  /* USER CODE BEGIN 1 */1 G' C+ l7 z; S6 C2 m

1 c' N# C8 z: q5 x" R9 Y! i  /* USER CODE END 1 */8 y+ U& f8 y$ f

. g8 C) |: q; C% K' F8 J! D/ f  /* MCU Configuration----------------------------------------------------------*/& D) {* W9 ?9 N
: L; r" x! m, i. v3 v3 y- z
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
! C$ M8 s) i3 @. W$ D) D  HAL_Init();; f6 ?& {# w2 W* W2 W
* R8 [% m3 q6 K" H4 T# l# Z
  /* Configure the system clock */
. L* P0 L; `: T) F+ V2 D6 s' F7 O  SystemClock_Config();
0 f8 U0 D3 O6 l6 }9 D$ L# t/ n7 ~  a: E; {# a) v2 [3 [* W
  /* Initialize all configured peripherals */0 S# Q' b' e3 t6 R
  MX_GPIO_Init();# i1 n( U0 b$ C0 Q

  f; X! e' i' e* Z9 m5 d. M- Y  /* USER CODE BEGIN 2 */
7 I: |0 M' W5 K, v; G( B+ B  
5 d3 `, p$ f( E  H& u: ]7 N  /* USER CODE END 2 */
/ ^; O) ], J1 D# N) k
8 j# ^; I7 R! a4 |; K8 v  /* USER CODE BEGIN 3 */
% z3 r! g9 X" I  /* Infinite loop */
, |  x5 c# a) Z9 f; f6 r+ p& e  while (1)( c; W1 W5 i' z6 |" x
  {# y0 c+ u' u) {: b" N% U5 V
     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);5 ?8 d, o9 x: L9 w
         HAL_Delay(500);1 |; W. E6 G" n/ L; D& v
         HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);* s; e; ~, d3 f! q$ e" {
         HAL_Delay(500);/ r8 C: _& b8 w" q7 ]
  }
* ]/ A- [, p! v6 l" J) N) k  /* USER CODE END 3 */
( Z4 D0 B$ w- A  k5 v
2 M+ Z! Z, k- b}7 C9 C* R6 {( V4 Y

4 q! ^0 h% `- E% Z/** System Clock Configuration7 n$ P+ S! R  @( N
*/6 ~" |# @$ f) j, O  r
void SystemClock_Config(void)
3 c. g3 T" o, ~; s: F{
; _% p. Y4 h( N; {7 f/ P8 c- t7 ?# T
7 c/ Z& K2 S4 N$ ?9 [: K- y6 a  RCC_OscInitTypeDef RCC_OscInitStruct;
% C/ t% ]/ `- K  RCC_ClkInitTypeDef RCC_ClkInitStruct;( ~, I" d8 y7 F: ?- p3 @0 m
$ T" `2 C" T5 v) w8 T
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;: C2 p* s/ z: x! |: h1 q
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
5 g; c& I  N6 U! U4 z  RCC_OscInitStruct.HSICalibrationValue = 16;, ]9 B( y) {# h6 ~
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;; h, o4 p8 H3 Z1 c5 U. w7 e4 N
  HAL_RCC_OscConfig(&RCC_OscInitStruct);  }) M4 M' ?5 W6 U, {$ p6 C

% D0 g6 Y% B* R/ l+ }  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
! w7 x- W- c, P2 S# G. @/ j7 z1 n% F  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;( ^5 Z. g# v4 m) }/ Y8 E7 z
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
5 H3 D  c2 U: X  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;. ~9 Q* i- ~# E
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
$ S' L( }" i" C& N$ }/ D8 k+ e
4 U3 y3 ?& @! q$ {$ O; c  __SYSCFG_CLK_ENABLE();
* C4 b* n/ h% l' R* ^/ L" I" I5 }* u# u3 u1 v- o' u0 \0 T
}, }# X3 ?1 ]- g" z4 L
  X$ X5 e+ K: Z0 W* d
/** Configure pins as
% [& Q  i: N, M6 P! e& }4 A        * Analog
7 c! g8 `/ G0 A, @1 b9 r        * Input
% ?; `- n5 q+ R" G% P; u9 |0 M/ w        * Output. Q$ [, G9 b: d  ~" U
        * EVENT_OUT! q1 _0 A7 @8 I) Z+ c$ s# p
        * EXTI1 a4 U9 b  V) w5 B% X1 c& C5 I2 U% r
*/9 ?! E. s, Q% W) n& P2 I! v
void MX_GPIO_Init(void)$ [7 U8 E: {% d9 a- f* ~$ I
{
4 ~" L3 m( {% m3 N" Z5 G2 D# f- {& t+ }  L
  GPIO_InitTypeDef GPIO_InitStruct;
: u: t4 U* y3 s7 E$ [
' Z6 Z1 p+ c! Q2 ^3 G1 F" x2 a  /* GPIO Ports Clock Enable */
3 _- A  p9 e% m6 L5 \$ c  __GPIOA_CLK_ENABLE();1 A" Y3 O4 y' c% F4 M% r% H
2 ~9 o: g) N7 d- O7 u9 l
  /*Configure GPIO pin : PA5 */5 y3 n+ H' m$ U: y
  GPIO_InitStruct.Pin = GPIO_PIN_5;
# c( z6 o# X/ c: K  t4 K. U) P7 N  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;+ ?  ~. r) ]0 v
  GPIO_InitStruct.Pull = GPIO_NOPULL;/ q/ X* X- h% j# B5 I: }: ]7 C( D
  GPIO_InitStruct.Speed = GPIO_SPEED_LOW;) Z" U$ [( f. C$ y, f: K8 M- _
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);8 Y: m9 r- M% J  b7 j% X$ M3 w

7 s+ r4 y$ Y' W; s/ X) x}
- ?2 z* u2 X) y) y9 ?* S5 k) A6 o! g! ]: x. ?* n8 l4 C4 D  k) n
/* USER CODE BEGIN 4 */% z3 r0 }! Z* I3 {' x% H
) p; Q3 h. B% w
/* USER CODE END 4 */$ k& x. W9 J$ J/ O+ k& m, b

& w2 s& K5 F* G#ifdef USE_FULL_ASSERT
6 M4 X+ H6 _3 d+ g2 l3 i9 W$ j0 M% @, Q
2 {% \7 f7 o( Q4 z/**3 ^: G# M% `2 O. z: E) m0 y
   * @brief Reports the name of the source file and the source line number
, ^$ q2 l3 f" P6 `/ Y   * where the assert_param error has occurred.0 O+ X, u* O6 i! N
   * @param file: pointer to the source file name
6 B3 ^3 z$ n9 A7 j' x* r2 [: k. B   * @param line: assert_param error line source number
6 h: d7 ~% C  C8 C   * @retval None
/ [0 P' I1 m5 y4 f. _7 K   */# W6 S+ ^$ C) n0 b5 _/ g  k
void assert_failed(uint8_t* file, uint32_t line)
. L6 V3 Z; @" j- X, U* R& n{( ]( V( b$ j, i. V5 t
  /* USER CODE BEGIN 6 */
# l* U, y5 n6 n5 s" W  /* User can add his own implementation to report the file name and line number,
: b+ v# _1 Z- B# ]$ w( j  w" J7 U3 C    ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
0 |" F/ p* \7 q! T! i% c, y4 W$ Z  /* USER CODE END 6 */
# u1 K( Q, e- ], C, @
: a  C9 a2 u# x' u# @}
7 z2 j5 b8 |' e: \4 ?( p2 F" e& ?; |2 n8 {1 w1 ^
#endif3 V0 ^9 Q# U7 c
9 k3 f8 ~, I4 Q+ Q
/**
  l. M; N: t# z# L: p! ^6 _. ^  * @}  g: ~: Y/ A8 f3 ~- o9 u' P2 C
  */
0 n5 n: w! f( D9 y2 J8 _1 \
! @& c9 [0 A  k5 k, q0 B7 T/**( I/ E& h1 H9 B6 ^
  * @}
& E9 F$ U3 v) X*/
4 H, G' Y- [" X* Q: e( S2 q( c; a. F6 J
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  N; D5 e! ^1 e+ \8 u$ }8 J& U0 q2 o# B/ s5 j9 ~
- K$ Q' U1 p2 P) l- F
7 k7 K% k" |: L+ C+ c- [; ?3 _1 \! z
收藏 评论2 发布时间:2014-12-26 11:14

举报

2个回答
沐紫 回答时间:2014-12-26 14:03:36
谢谢~通常来说,下一步就是按键了
yceast 回答时间:2014-12-27 16:49:11
是啊 按套路来

所属标签

相似分享

官网相关资源

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