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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。. y3 b* R1 _! W  C4 X* x8 q4 J
  ?1 D) _' A/ l6 T
20201109092040958.png

+ j# W0 t5 U/ j" I
4 [4 m. x+ e. ~# h; c2.读保护函数
. M; C! T5 i( z
, `2 Q7 o& M; d# i1 _& Q, R; K7 w% {6 A& W' B
20201109092040946.png

' P+ w: E% D. ?4 ^& p' j
. R, e8 N: j' P% f$ {. D  o$ l$ Y3 U( G
  1. int main(void)
    * L8 l% N1 v+ T/ b+ s8 ^+ k8 w
  2. {
    : q3 m* r" |+ ^. X
  3. Flash_EnableReadProtection();; |* P& a  o- a* F
  4. While(1)
    3 u. T6 v- e: E0 {5 k) b5 Q
  5. {
    ! c# D, K5 p3 _+ u# v7 Z) q5 C3 P
  6. , K- C/ T! n, y/ S6 ~
  7. }8 }& v( v, L" k* c7 g8 t
  8. }( t8 ?- t+ T- r' m/ j3 S

  9. ) \/ b* E1 u0 F4 W3 d# s% Z
  10. void Flash_EnableReadProtection(void); L( o1 }( G9 _5 X; e
  11. {
    ( k. D* s& e3 ], G3 R, S
  12. % x/ p0 `! l3 T* ^
  13.   FLASH_OBProgramInitTypeDef OBInit;
    : B( h* k1 F( V3 o1 X( \5 g  K+ N
  14. * c. \1 {1 W$ g8 E' ?8 o+ A( w/ u
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
      x7 o) P# J) v" m$ ^* Y  y* W
  16. 0 O, _2 {8 D6 ^" j% S: ]; v
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);6 q; R( B3 R  m  y5 _
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)0 t! L4 |+ \, R. L# b* h
  19.   {
    8 ?7 k: ^4 l$ q. h" Q" M2 g
  20.     OBInit.OptionType = OPTIONBYTE_RDP;8 D/ t* A" q# _* `* n
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;7 Z4 P/ s& m' I0 _  t
  22.     HAL_FLASH_Unlock();8 q; B" f& x4 y& J
  23.     HAL_FLASH_OB_Unlock();
    ! Y2 A7 t( L7 [: Q& M
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    9 ?& z) f+ q% W. |% P* ]
  25.     HAL_FLASH_OB_Lock();
    1 b( J/ l2 T- a
  26.     HAL_FLASH_Lock();
    % y& t! D# A3 ^/ |
  27.   }
    : d. c, A; y$ n0 w5 `6 r
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    9 H' Y* S0 U: s. E% q* ^) l+ e
  29. * }7 O1 [, v* c9 E$ W, `  S: Q
  30. }
    8 W& K! f, @8 x6 }+ h
  31. ) s8 d; b/ j- a6 N' `! C9 }
  32. void Flash_DisableReadProtection(void)
    & f  f6 W4 G: {0 q, M5 [& [9 e
  33. {
    * `) c/ B0 w9 N4 w4 C; F
  34. 0 I, C, d& Y0 W& O% F
  35.   FLASH_OBProgramInitTypeDef OBInit;
    ! V, h$ s" [7 G5 P3 k, c. L9 D

  36. % _+ w4 _7 P0 b
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    : l+ O6 x( i. ]9 _8 s0 F# z) j6 P

  38. 3 E6 R. y2 M4 v; V
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);' a; Q3 d8 x& O
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1); _% g) s. a. x; T% j
  41.   {
    9 N& F3 x. f# x; A
  42.     OBInit.OptionType = OPTIONBYTE_RDP;
    6 V/ H& r& n! a& a
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;8 E( z, L; p6 S7 g! n( S
  44.     HAL_FLASH_Unlock();
      u7 n& n! [  a; W& C+ y; M+ z* N
  45.     HAL_FLASH_OB_Unlock();6 F9 a/ V1 J$ R, B
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    ' _% J: U: {/ p. Z2 Z
  47.     HAL_FLASH_OB_Lock();
    . w, A$ A' @7 r# c" n
  48.     HAL_FLASH_Lock();0 f; O* E! n$ X
  49.   }
    ! n+ S. Q7 F9 E2 c" c3 N: T
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    : U) v5 m( G6 I9 q
  51. 4 L# T# G& z$ {9 W% P+ U) M/ t5 H
  52. }$ ?" @! u. A" R' C8 w
复制代码

  w2 h+ ~$ }" f4 z# v
7 j5 B5 ?/ i8 Z4 i6 N
赞 收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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