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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。2 S1 T2 C) s9 m: T9 k! h  o
% \0 E2 `( ?! Z2 N* v8 d% P  r: U
20201109092040958.png
' ?0 K3 T& M8 S, ^* h: L/ j- t, h

  K# W6 v5 u* t" [" P; F5 {% t8 N2.读保护函数
2 r1 \$ D+ X5 V/ O& N+ D3 C# x; a& Y% X! U
9 E9 u# J% t9 `+ v, b
20201109092040946.png

0 R  _/ F+ q0 N! c: p" X
8 E) {6 t4 u0 [) j. P
; w0 X2 r- J4 ]& J
  1. int main(void)  |1 K2 z, g4 Y7 Y1 l
  2. {
    2 Q- ~; e5 x: o) M* O! d; u( ^
  3. Flash_EnableReadProtection();6 J, W# i4 y  ?5 y5 H0 F( V) M
  4. While(1)
    3 g5 L. O! K5 w
  5. {& i' E& y/ |2 a+ W6 K

  6. ' t! w# K$ p# _# I" s
  7. }
    ) ~( A8 a( x7 N. C
  8. }
    ; ^, u- {# k" P, E$ S. i) @
  9. & N! l% X+ R5 ~  }
  10. void Flash_EnableReadProtection(void)4 C7 f/ |; M0 X& l& k/ ]5 v
  11. {; b4 o) y3 Q7 H+ F7 ~9 k7 |+ E
  12. 1 p2 x) T( d/ t- N5 X/ d# Y
  13.   FLASH_OBProgramInitTypeDef OBInit;
    1 t8 V8 ?! G3 J) T8 }
  14. + |8 V6 O  K9 r; e+ T/ J7 w! Q
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    $ |' Q6 y+ _3 J" m
  16. / c; Z1 Q% s5 Z% v' X' Y( c% q
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);& w% D5 M( |& |; [0 m/ V$ S
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0). `+ @- I/ U6 d( t8 v
  19.   {; y, B/ i( Y: D  N6 \$ B6 j
  20.     OBInit.OptionType = OPTIONBYTE_RDP;2 o3 ?  f5 h% n- D( r  a% P1 M
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;3 B! P+ f3 d  E2 d- c# n) p) q/ K
  22.     HAL_FLASH_Unlock();
    ; O: L# N( z7 p* a: ~. O
  23.     HAL_FLASH_OB_Unlock();+ c2 n' j2 J, E! H! e
  24.     HAL_FLASHEx_OBProgram(&OBInit);/ L) Z- X4 h6 z1 d
  25.     HAL_FLASH_OB_Lock();
    ; n2 @* t5 Z( Y; ^7 R
  26.     HAL_FLASH_Lock();8 T; N  I1 |: G- g
  27.   }: l7 @3 _% c/ N' i* X7 J
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();- H9 j9 q9 Y4 H7 w& w8 o! R5 q# ?+ q
  29.   n# R! i4 H$ o- I& B4 m2 u/ F' ~
  30. }
    9 N1 N+ [" X" N5 o/ ?
  31. 2 @; D* W5 v- N3 w. y! F
  32. void Flash_DisableReadProtection(void)5 t- M7 ]1 V( w6 V6 R
  33. {
    2 }' c% r2 }3 n# X/ l. J9 z6 o. ]
  34. 1 G  J4 W1 ~0 m6 `2 b, k
  35.   FLASH_OBProgramInitTypeDef OBInit;$ Y: A" z9 |! l* h6 Q; c
  36. % m' \+ \) A9 Q# F; Q" A& H
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();; D( }0 ^8 a6 i- J9 Y5 C
  38. 1 Q) c: ?+ `) Q
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    7 v+ @- a8 H6 \; }3 d/ i
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)
    : \4 K: K# {/ w( j  g
  41.   {
    0 f' I* t, M( d) a* l- D" {
  42.     OBInit.OptionType = OPTIONBYTE_RDP;
    : A. P  y* L; e2 K$ z: K; C4 v% s
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;: g5 B# U" j3 G
  44.     HAL_FLASH_Unlock();& h3 }1 ]4 C- z
  45.     HAL_FLASH_OB_Unlock();1 ~0 {$ `. E% @( _; J( A
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    : @4 ~) f' o! P2 G) |9 v" n( ]
  47.     HAL_FLASH_OB_Lock();
    3 K2 A% z( H9 ]: ]: I
  48.     HAL_FLASH_Lock();) q2 C. I9 f$ P5 t- k- H
  49.   }
    3 p, C/ A7 Y1 {  W/ L: `0 y
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    : T  z5 w6 |, }
  51. 1 m. }8 T; N7 j, ^- g
  52. }5 p" W. c9 J8 T1 Q) Y
复制代码
, q0 y  G! d3 y) A% O. j# E
" m/ S* ~$ b7 m0 V7 I. N
赞 收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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