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

stm32F072开发之KEIL初走起

[复制链接]
一花一世界003 发布时间:2015-1-22 14:05
走起-----
. y: B- t4 T7 K& S3 l之前使用KIEL,一直都是5.00版本,使用起来STM32F系列的都妥妥的,都不知道为什么,在F072上面,遇到了各式各样的问题,先开始也没多想,觉得ST公司提供的文件非常非常的正确,可是在重新安装了KEIL5.10,KEIL5.12时,问题还是不停的出现: @* X" W" s( o. i6 Z; P2 h
毫不犹豫,把遇到的其中几个分享一下-----首先是STM32PACK文件的问题,KEIL在安装的时候不知道抽了什么风,老是PACKINSTALLER无响应,在IMPORT之后好长时间没反应,一点击就无响应,使用器件就没有保障,遂选择一个类似的,唯一是把其中的固件库文件要修改其中一部分' E1 b8 x9 u  M! r1 h8 H
好比来说,选择FLASH有不同,那就改变FLASH文件,ADC位数不同,那就该调整STM32F0XX_ADC.H
7 a) T$ W5 B- y, O* t/**
$ ]- n  C' s! o) \  ******************************************************************************3 Q2 p9 X9 r: ~, s
  * @file    stm32f0xx_flash.h7 s: B; [3 `# E  j0 @* G
  * @author  MCD Application Team  m" W6 Q4 `( }3 w$ T! G
  * @version V1.3.0: P' {1 ]0 M& k7 k, N1 W
  * @date    16-January-2014; G" F4 |" R3 k5 o2 n) w2 m
  * @brief   This file contains all the functions prototypes for the FLASH . }2 F' t) D& n
  *          firmware library.
. p  h, q3 \  c7 W3 ^  S, s  ******************************************************************************( u$ m5 E- |5 @
  * @attention
9 v( d* `) [' J  *: ~/ S+ Q" B4 P9 X) Y& n  @) }& {0 F# c
  * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>7 U) M# Z* V. X+ k6 O
  *
2 r& i" I$ ]- O; R4 }2 A; n8 a# k  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
$ E$ ?3 T5 k7 l4 w  * You may not use this file except in compliance with the License.5 M( {9 n9 `$ |  `
  * You may obtain a copy of the License at:
  @* D3 d2 i- l, D* I( Z. r9 m  *; z1 }# T/ w! q. n3 U7 |
  *        http://www.st.com/software_license_agreement_liberty_v2" ?2 \2 s& k% g; M
  *
8 ^" H" D/ Z: C, N7 l2 c  * Unless required by applicable law or agreed to in writing, software
+ \' {1 g5 B8 u  * distributed under the License is distributed on an "AS IS" BASIS, % s5 i; p- c; T, D  Z8 n! J: h. k
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' ]" I; X- }* x% I, ?+ k' j% ^6 K, |8 p  * See the License for the specific language governing permissions and
8 D. C! L$ n' H6 i5 N) `  * limitations under the License.
4 M  Q' L/ t  V" g  i  *
) G5 D" T' Y; F  ******************************************************************************
- R) [- r" M2 a  u/ Z/ Z  */& i' U! t, ^# V" B/ w

$ _% x9 b% t/ X* V5 O' x& ^: Z/* Define to prevent recursive inclusion -------------------------------------*/
( g3 B# p2 l- x#ifndef __STM32F0XX_FLASH_H9 {- D' A7 e( Z3 L+ C" J
#define __STM32F0XX_FLASH_H
. L8 A" B7 p0 }3 H4 k& O$ x6 K- g
& |1 ]1 \$ \" l( B8 d4 L#ifdef __cplusplus
) ~" K  b. e9 V extern "C" {
9 v( G2 M: z/ }& k/ i! A#endif
# u) D; {" v" q6 E0 Y% n/ k
- G3 @# ~$ D" l4 V3 N6 M. T/* Includes ------------------------------------------------------------------*/
5 u, F/ |7 i3 h; O; R/ z/ c#include "stm32f0xx.h"
, e1 D$ O. g  [+ Y  h$ g4 B8 U
/ K/ O' \6 e' h# {/** @addtogroup STM32F0xx_StdPeriph_Driver5 J' i7 m, ]4 h* Y6 V1 p3 M
  * @{
+ Q: ^% J* \: n+ ]" P& B0 s, T0 E/ v8 k  */
6 `1 C; I( }, B
1 I9 h  t4 T0 Z4 Q1 t5 ~7 M/** @addtogroup FLASH
' f8 ~1 t; M8 x  * @{
8 z' Z9 J' l# e2 C+ Z+ d3 f  */
/ z2 w5 g+ w& K5 z1 _% C( {3 v+ S  z' u0 O/ Y7 N
/* Exported types ------------------------------------------------------------*/
( E, H# M6 i' A; y; P- S( U0 C$ h
" [4 {( c% h. H- `8 Q3 i/** % {5 @# c' M% |+ O! y" a. E
  * @brief  FLASH Status1 A* e* O8 K, y8 S
  */ & K  ]% h' o' `6 M1 o1 v4 }
typedef enum( m' S7 o- e7 u, k
{# j2 {0 ]$ |- I: |6 h0 I7 p6 k
  FLASH_BUSY = 1,/ c* d) r' X+ {; n+ h  P
  FLASH_ERROR_WRP,
; N, [1 g) \0 g% h3 q! D  FLASH_ERROR_PROGRAM,8 v+ I) N- V( T# Q. L) f5 O1 O& y
  FLASH_COMPLETE,9 Y  q4 \2 M. \! j. ~
  FLASH_TIMEOUT
$ y6 k* D8 b% i! G/ t+ W}FLASH_Status;- {/ D, Q4 ^0 M& z8 a  h

1 D0 c6 R+ R# q2 X' c+ b; ?/* Exported constants --------------------------------------------------------*/
6 N" C8 ?5 r0 u# s& h& k
* K- `9 s' ?- V+ K/** @defgroup FLASH_Exported_Constants: P$ O: T" x- |$ A1 W
  * @{
4 k7 j; P5 U; p; S. _* S- p5 Q  */ 2 J4 _6 D; q: f5 X6 i& k
- t$ a! a$ A5 N: q$ m' Y
/** @defgroup FLASH_Latency
* c' w( U; L# Y! r; m1 ]7 m# B8 \0 M  * @{3 @1 l, ?! y8 J
  */ 5 P: \; P  F4 w5 q, {) v
#define FLASH_Latency_0                ((uint32_t)0x00000000)  /*!< FLASH Zero Latency cycle */) r7 u+ Y* t( k5 j& N
#define FLASH_Latency_1                FLASH_ACR_LATENCY       /*!< FLASH One Latency cycle */) ]2 K: U' u" o6 c7 n/ i  ?- s  s
. M  D4 z0 B! r% Y' g" M/ C! e
#define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_Latency_0) || \/ x8 r5 T* I: Q' Q; E; g3 m- ]$ ~
                                   ((LATENCY) == FLASH_Latency_1))
! @5 Y$ x  V5 q3 a/**. U& d# @1 n" o7 \) s2 V6 y
  * @}
' k4 D: x" \! H# P$ N( [& h# X  */ , O' J7 [! [; s! @* |* l" D7 o% S, f

0 d9 R7 U- \2 U/ Z) R/** @defgroup FLASH_Interrupts
! t7 c5 J; ^* X  * @{
. z& @* k; i" R$ a- T0 r  */
* E2 D# E% j3 R8 y& ?: Z% s
" G1 @$ p7 ^* W( L; K#define FLASH_IT_EOP                   FLASH_CR_EOPIE  /*!< End of programming interrupt source */. s' Q% a$ x3 g! {' p
#define FLASH_IT_ERR                   FLASH_CR_ERRIE  /*!< Error interrupt source */
1 `) \8 `5 p- ]( Y3 b/ \- }3 g/ O: x#define IS_FLASH_IT(IT) ((((IT) & (uint32_t)0xFFFFEBFF) == 0x00000000) && (((IT) != 0x00000000)))& m, g+ ^+ F+ N$ e. ~9 l8 S) W2 E
/**" Z( S4 F2 Y* O: s" E+ m3 w; X
  * @}
! y: u0 U) L/ p1 u* z  */ 7 A# G* l7 E( d; c1 j! ^: O5 K
+ j7 [9 Z( t5 Z8 u
; Q3 I  [) S+ B2 y4 t
#define OB_STOP_NoRST                  ((uint8_t)0x02) /*!< No reset generated when entering in STOP */
1 }5 S7 p, i9 S8 A& h& d#define OB_STOP_RST                    ((uint8_t)0x00) /*!< Reset generated when entering in STOP */1 ^& ]0 o, }2 \' L, q5 v
#define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NoRST) || ((SOURCE) == OB_STOP_RST))
: y% [8 J2 C. |/ Z" K" T8 y& c。。。
$ j" N/ S1 y, F
- N  @1 k' t# V& F' b& q: G" S/** @defgroup FLASH_Option_Bytes_BOOT0SW* ^4 G1 x9 S. ~6 m- A! U1 H* l
  * @{# k3 d% T1 D4 x% `
  */
, i8 A' l5 h1 {3 l0 I- w3 l  v& i& T& a  u- ^) c6 [$ Q' a/ X
#define OB_BOOT0_SW                   ((uint8_t)0x00) /*!< BOOT0 pin disabled */  $ z3 D# p4 p! J7 |; K1 ]6 n' ?5 B0 J
#define OB_BOOT0_HW                   ((uint8_t)0x80) /*!< BOOT0 pin bonded with GPIO */$ u0 k7 |/ ]) k: `6 P
#define IS_OB_BOOT0SW(BOOT0) (((BOOT0) == OB_BOOT0_SW) || ((BOOT0) == OB_BOOT0_HW))
# L3 w% a0 Q% Y+ k, P
1 j: s( i! B7 b- @$ v; n% u/**6 }8 e% Q+ N( H
  * @}
/ _4 ^- Q4 p$ D  */
3 o/ b7 G. g& i/ U$ m/ W" T* _% x! n5 u, J- ?* I& t
/** @defgroup FLASH_Option_Bytes_VDDA_Analog_Monitoring
7 V6 R, m# W, w0 ?9 w5 h* V2 O7 ?7 U  * @{
1 I4 }. P8 ]- W4 f6 U) S6 ~) [" r9 q  */
/ T( V3 L) I8 f. k6 M( ^. }2 V7 X) [; ]0 u
#define OB_VDDA_ANALOG_ON              ((uint8_t)0x20) /*!< Analog monitoring on VDDA Power source ON */
3 B# T! H& i% m8 f3 `7 x0 a; O#define OB_VDDA_ANALOG_OFF             ((uint8_t)0x00) /*!< Analog monitoring on VDDA Power source OFF */9 k/ h. {8 Y/ Y) y) P! U( p: R
) f1 S( v. G* r$ l/ {$ v! [* C1 X2 r
#define IS_OB_VDDA_ANALOG(ANALOG) (((ANALOG) == OB_VDDA_ANALOG_ON) || ((ANALOG) == OB_VDDA_ANALOG_OFF))
4 O& n" a9 v; D6 R/ V( ?8 ~1 l# l% x  o, ^; g: E
/**& R- d1 K7 u$ H* T- V+ V3 k
  * @}
* v  Q" Q- z( v! h: j, S# E  */    7 U9 t# z% z, k/ x* ^
) X+ o, n0 j- u; \: a
/** @defgroup FLASH_Option_Bytes_SRAM_Parity_Enable ; X9 Q+ m. U" Y) o
  * @{$ s/ y# J% b) m) M7 ?
  */
* z  ]. s* ^* j9 m' ~7 x; P+ D, ?1 q, F' P; f) ~
#define OB_SRAM_PARITY_SET              ((uint8_t)0x00) /*!< SRAM parity enable Set */
! b: v! N# i" [, Q' d' X+ `; N#define OB_SRAM_PARITY_RESET            ((uint8_t)0x40) /*!< SRAM parity enable reset */
& Z9 G4 G' n; r) a. b8 T- r1 I0 n& p" i5 H% G+ ]" N$ Y
#define IS_OB_SRAM_PARITY(PARITY) (((PARITY) == OB_SRAM_PARITY_SET) || ((PARITY) == OB_SRAM_PARITY_RESET))
" g* [8 {2 |' w+ y8 E" z2 d! e6 e9 r7 z1 M
/**
/ |$ \$ M( i  I: R& i' n3 C  * @}: T4 s3 Z& z4 }7 h
  */ 0 P# N) Y; C; Q; a" v( ]
- G1 z+ h" ]' i5 R$ K4 B. x  }
/** @defgroup FLASH_Flags
" b$ G% v- q/ S  D' O2 k2 E3 J  * @{
; x" H  q! G6 h' k6 ?) L' m  @$ F  */
2 `" A. ~$ ~" _
( h: A: a, p3 h7 [$ P#define FLASH_FLAG_BSY                 FLASH_SR_BSY     /*!< FLASH Busy flag */
7 D9 n: z, t% S' V  z9 ?7 ^#define FLASH_FLAG_PGERR               FLASH_SR_PGERR   /*!< FLASH Programming error flag */
3 l  |  V# }! h4 q: f+ y#define FLASH_FLAG_WRPERR              FLASH_SR_WRPERR  /*!< FLASH Write protected error flag */
+ O2 b6 I* Y, T& B, s2 m/ J) f" R#define FLASH_FLAG_EOP                 FLASH_SR_EOP     /*!< FLASH End of Programming flag */
/ Z% L  h' q9 R( x! L0 D$ t* \! |' e! G$ N8 e
#define IS_FLASH_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFCB) == 0x00000000) && ((FLAG) != 0x00000000))+ w4 E, K1 h. X6 B, f9 G/ F, m) ~

) |. @6 y0 {9 |#define IS_FLASH_GET_FLAG(FLAG)  (((FLAG) == FLASH_FLAG_BSY) || ((FLAG) == FLASH_FLAG_PGERR) || \  h" [6 O, v7 g1 Q  B$ i/ r
                                  ((FLAG) == FLASH_FLAG_WRPERR) || ((FLAG) == FLASH_FLAG_EOP))
! ]4 C3 I$ |, Y7 x& Y) s8 z1 e: ~+ E6 i$ ^2 d+ R: s& L
#ifdef __cplusplus
$ r% V# U$ g$ b) c8 I}% ]5 A  K9 R2 s! Y  j* t' _
#endif3 F6 V* S  R' Y2 s

& ~8 _0 c+ X$ ~$ R' q#endif # R6 l  x  Z% T  y/ q# k/ [9 l

3 O  {- f; ]+ f4 ]6 d就是这个方法,就可以了7 p. u6 M" [4 n0 o& g7 q
KEIL,IAR使用非常多,虽然见识了mbed的许多优点,但是我觉得还是喜欢使用KEIL,不知道大家觉得怎么样,欢迎讨论
$ I0 W) `1 c- |+ r3 N+ I+ Z1 c
赞 收藏 评论1 发布时间:2015-1-22 14:05

举报

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