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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。8 Y& t, ^/ I" k7 p0 z1 l1 c
1 c. W& S2 c2 S6 o6 e
20201109092040958.png

, R/ [! |3 Y# Q& R, z- K8 v" @
0 N/ s3 ^7 F4 D* _' l; W" P2.读保护函数  f. m+ u; H1 ?. g, v5 u
/ n: M. ~3 l  J+ h! e; X- ^
& k0 K5 ~1 p) c9 a% R$ h: W
20201109092040946.png
! c5 M9 e5 S% P

$ o  J! ]+ f) t0 t0 W+ B3 r& E
8 t. r8 c! w6 d$ z& A8 Z
  1. int main(void)
      g7 N6 ]5 v( J8 v9 m1 F1 D
  2. {
    " F* J0 `+ P7 M( n- y3 j2 s6 T5 L
  3. Flash_EnableReadProtection();
    ; _4 f8 ^$ h: K5 P3 l0 ?+ {
  4. While(1)! |$ |2 m" N8 U. i7 i( V
  5. {
    1 h, |; p3 \  S$ J+ I. u
  6.   k& P% N: y- t5 [$ n( r* H# h! U
  7. }
    ; q8 [  U9 k! {$ ]5 m5 @( Q. J" J. i
  8. }
    - c* b! z! Y- U. ~

  9. 8 K& c, Q7 a& X" n
  10. void Flash_EnableReadProtection(void)7 e" K% f0 A4 m# y  t# q4 A1 s
  11. {
    - K# L( N9 I) A* a

  12. ' Q: t, L3 p' {8 t" B# E. c( f
  13.   FLASH_OBProgramInitTypeDef OBInit;$ x: V( @6 b+ X7 \% \
  14. 9 d! |) }, x: @6 b! {5 J6 P
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    ; k) L0 X4 |* s/ T$ x6 A
  16. , j- f8 ?0 p& q
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    7 W; y# ^( n' ?0 [
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    ! E7 N. I3 k0 ^3 W, n
  19.   {
    $ s3 P+ v4 y/ I- K; Q
  20.     OBInit.OptionType = OPTIONBYTE_RDP;* l' R8 B4 n9 v- g
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;
    3 T8 e  ?3 d5 v) [! z, R  y& p: t
  22.     HAL_FLASH_Unlock();/ K; P' ?3 [+ ?
  23.     HAL_FLASH_OB_Unlock();* D# A* s1 F4 L% `+ Q
  24.     HAL_FLASHEx_OBProgram(&OBInit);- z) `3 }, U9 ?2 y1 c, \
  25.     HAL_FLASH_OB_Lock();
    9 R* [2 ]+ L1 c' m8 C! `
  26.     HAL_FLASH_Lock();& n2 g. S( L" \9 r. H7 H
  27.   }
    , @7 t. n+ f) _/ S
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    2 V: ]5 ?% t/ O, I& `

  29. 4 C( l! Z5 [0 |! m2 L
  30. }$ E6 o0 w9 ^* ~4 b+ P# [

  31. ! A! {6 u$ Z; T2 Q# f
  32. void Flash_DisableReadProtection(void)
    / I* l% S: R; S( m! e1 g8 v! _
  33. {" g( [" t# W9 Z# _, ~6 m' j

  34. 0 ~7 h5 i* h2 z9 q/ z
  35.   FLASH_OBProgramInitTypeDef OBInit;9 G% y7 h+ j9 |  g- e
  36. 1 Q& N) R3 B" U# R" s# n- R
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    , S2 |' |5 X1 l9 x; p. z

  38. 5 k/ }! a0 r. k( J; k$ H9 }* c
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    % J2 e' v. g; F1 R5 Q& u
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)6 P! E3 {6 H& M1 y
  41.   {1 {1 X0 W$ b3 w. n; p2 ^  I4 A
  42.     OBInit.OptionType = OPTIONBYTE_RDP;& ?( R" y5 Z6 _+ N9 ^9 R2 _
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    8 O( e* X6 H0 C- T
  44.     HAL_FLASH_Unlock();
    " H" ]4 C6 ^9 e" w
  45.     HAL_FLASH_OB_Unlock();
    3 G+ U7 ?* v3 K! |7 z- n! l. Y
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    $ l) S/ T+ f& p' p9 ?0 P
  47.     HAL_FLASH_OB_Lock();% A& L4 n( |; h" I" o( P3 K
  48.     HAL_FLASH_Lock();' d4 a- O6 c0 F: y. u: P3 \' l, {
  49.   }# t) ~; `& E/ X; m/ U$ D
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    ( i/ p6 }+ h# r

  51. - f' V9 u* W4 T# U8 \& k
  52. }; h' ]# R" B4 N0 p6 S
复制代码

* ~* H! N. d5 \; r
, R4 p0 @1 Y$ H2 x' a! E
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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