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

【经验分享】STM32G031 程序设置读保护

[复制链接]
STMCU小助手 发布时间:2021-11-8 01:02
1.在main函数中加入启用读保护功能。0 i8 F) ?  G: i( s0 B- D$ C5 R
/ p3 I: b. G: b
20201109092040958.png

4 S  o4 l5 n- D- v0 [$ C, R  f% c' x. G
2.读保护函数
1 s; m3 _+ t& w) X# F# @
/ E5 }9 I; m* m6 |4 j& S
20201109092040946.png
9 X1 z  R* q5 x" A4 b( {( T

1 Q. I, L# }& \$ q7 _' @! V0 X! ^
; Z0 S) T3 Z6 W3 I* u
  1. int main(void)
    8 F( Z  W6 E. c" F% n/ _
  2. {
    ' t2 {. j5 D$ E8 S) n
  3. Flash_EnableReadProtection();6 R. m  A, P8 B
  4. While(1)9 z! e. A0 d) q; c" m4 D
  5. {* D/ u" ^: Y+ ^- T6 p4 L
  6. / @3 w' C9 Y3 p6 M  @- X% P
  7. }
    ( s1 P6 ]8 ]( e" H, S
  8. }
    6 z2 b3 B! v$ m) w
  9. 9 E. k) C' ?( L) E" `7 P
  10. void Flash_EnableReadProtection(void)
    4 n) l( y% @" c% R% P8 B
  11. {
    * H- o1 q" D; ^- w/ [8 t# s
  12. / i! [+ @% j$ q& y4 K
  13.   FLASH_OBProgramInitTypeDef OBInit;7 m& E# D  y- D1 V

  14. ( ?- I; _7 q8 ?8 Q1 i" ?
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();5 h3 n( Q' `+ y, F
  16.   T1 n! y  ^) U5 [) E8 a# E* z
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);1 _) C: G& ^4 Z8 D* l. c
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    % {1 s& N4 h2 B7 i! B$ M
  19.   {
    8 y2 c1 l5 a2 Z' K$ u$ J5 L
  20.     OBInit.OptionType = OPTIONBYTE_RDP;
    3 U2 {& A( j1 `% p% c
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;3 C" h( y" D2 [6 P5 m
  22.     HAL_FLASH_Unlock();0 n' k+ t& A: o' E# Y4 Y; X
  23.     HAL_FLASH_OB_Unlock();
    2 U* m6 \' x' G# J% @6 i' [( U
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    . L; D8 c' D% e" `8 J
  25.     HAL_FLASH_OB_Lock();2 W) U. w) C* ?* ^+ G
  26.     HAL_FLASH_Lock();
    " e4 P1 q: S4 O1 H
  27.   }
    9 U- [, A) K0 G) d
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();9 h' R2 [* [4 u2 m6 |
  29. % _) D2 ]5 a6 w# \! D; Q
  30. }
    : Z) o) s+ q6 B6 y2 S4 i

  31. ' M- _* B% s* f- T3 Q$ `
  32. void Flash_DisableReadProtection(void)
    6 n0 l2 X. m' F
  33. {5 A8 n" |! N1 a( @
  34. " L' }& d- }- X1 `
  35.   FLASH_OBProgramInitTypeDef OBInit;
    : N1 H- y0 W1 G1 S" h8 c

  36. 5 V6 n9 H7 O; y) W6 ]; D, V
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    / Y0 j3 {& }" k& s- L9 Z2 u
  38. " o1 h, W. X8 p- I! t7 @
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);9 @. X( |8 x1 P; s
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)
    7 d3 B. T8 N* g3 `  T* C& E
  41.   {9 S, d( H) C8 r( Z- v
  42.     OBInit.OptionType = OPTIONBYTE_RDP;5 W2 g- r3 y- P2 x5 Z
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    ) {, x: `6 c: m. S$ t0 y
  44.     HAL_FLASH_Unlock();* c  Z1 c) m# ]" f) A: ?
  45.     HAL_FLASH_OB_Unlock();0 A! Q% F( H; X. e1 g; @5 w1 o
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    6 ~* X2 L5 M" w
  47.     HAL_FLASH_OB_Lock();
    * V" `2 K6 `. |; e( N7 c* e4 N  Z! h0 T
  48.     HAL_FLASH_Lock();
    # y1 g/ Z+ f1 k( h: t' M
  49.   }) D8 P( G  j) O4 m6 L1 n; g. M
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();+ X$ M. i& ~; o& e) B5 y7 m; {

  51. & L' n( P* A0 e1 L% f; P6 k
  52. }
    ( u1 M5 v' l. G6 s4 o
复制代码

) |  Z  c# Z. c0 \9 e
; _* w, i$ L  u5 z6 U
赞 收藏 评论0 发布时间:2021-11-8 01:02

举报

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