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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。
5 T7 S. n, z$ s: h  O
  k# ~) o/ |7 l8 o! B: [
20201109092040958.png

* G9 c% Z7 b" C  U/ n. S; t1 z! y; p: a; A; o/ r
2.读保护函数
; x6 B  \0 O. I8 P( R, k( I' F# E+ }* Y) z6 m

" h6 u, U3 c; ~. r% {- E
20201109092040946.png

3 |& r) A2 _' b6 O/ r" e0 i! f% A
4 a3 h' H  a" F) c& h1 b: o) e. q0 B! i0 y- w6 C* n
  1. int main(void)
    3 t; S8 K' e# S$ C
  2. {
    ! y7 u! _1 b+ B# U5 u6 q6 T
  3. Flash_EnableReadProtection();
      t3 E& U" [. q5 Y" ]3 s
  4. While(1)6 l: D5 k$ r3 B& k0 h
  5. {
    - L7 Q4 N" B1 `, K# p5 {7 q
  6. 9 P1 r7 S0 T" H: N" x/ C- Q: E
  7. }" S3 i  P4 {2 ~' a0 w, ^
  8. }' W6 A- Z- A' q8 \5 Y% C
  9.   J) V/ P! w8 G
  10. void Flash_EnableReadProtection(void)# Y/ \. s$ W: o
  11. {
    4 R+ m& [+ [0 P6 _

  12. $ X6 k) U  L& z: I  b( {
  13.   FLASH_OBProgramInitTypeDef OBInit;
    6 F. V0 t/ V5 P

  14. 6 o: l, k) N! n* J' K8 V
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    " n2 U+ W2 r" T5 |3 l
  16. ( P7 R9 K- t+ b- a- n
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    - M: ?) g! D- R" C8 [5 D& |
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    " i# c" C& o0 A9 `1 u
  19.   {
    7 {  y) I2 S3 N9 d  @# w
  20.     OBInit.OptionType = OPTIONBYTE_RDP;3 D/ F7 c7 |2 S  x7 ]+ {
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;
    , m. W) l8 I; ^  h6 a3 S. ~- K2 d
  22.     HAL_FLASH_Unlock();
    # C9 L- y! z8 a
  23.     HAL_FLASH_OB_Unlock();# z* k( w0 ^: ~! O8 d
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    ! Z; V! b/ q! j2 Z$ c* f2 S
  25.     HAL_FLASH_OB_Lock();) _, _5 C5 t1 U, w. ]0 t
  26.     HAL_FLASH_Lock();
    / n! m- j( c7 [2 a0 c3 B4 G9 r
  27.   }: p, J* y+ z2 ~/ x8 x
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    * k3 K: r& B2 |* ~3 D8 s9 i
  29. 3 O8 y% X% g- q( m9 w
  30. }
    7 b- X. }, J+ m* k* }; n
  31. % G8 D5 F. a" A
  32. void Flash_DisableReadProtection(void)- I" W' [- r# w. H# q# ^; ]
  33. {. X* K: R) [0 F5 V, q) q( @
  34. 2 O3 i5 x  Z: l6 F+ D& x
  35.   FLASH_OBProgramInitTypeDef OBInit;6 L  _  j7 H( S

  36. * r! _5 p& I3 W2 {" c2 v. r4 F5 k
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();" Y- a" ^) d1 T* x7 ~( Y7 x+ M

  38. 4 @8 t' V4 X( m# y* S( n, j9 K# Z: t
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    % A: l( A# y# @* t5 o
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)2 F2 ^6 i# d7 A3 f
  41.   {& g4 S% `& q2 P
  42.     OBInit.OptionType = OPTIONBYTE_RDP;
    6 w) [7 ]: x5 O# N3 w) n" [' {  W
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    ; E! q& q: V( K% ]
  44.     HAL_FLASH_Unlock();! |( |  `) ]! ^# k- G
  45.     HAL_FLASH_OB_Unlock();, V7 ~& L. G4 \1 K- d* ^, J
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    6 N. K: v* j  z0 B/ m
  47.     HAL_FLASH_OB_Lock();
    - Y" r* @' n# h
  48.     HAL_FLASH_Lock();
    ( a, r% q9 d; O' j5 p& E
  49.   }. H* `2 C* e# `- x! z# g
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    9 I& W) {. H) C9 S, a3 P! ]

  51. 1 Q5 r4 Y- R$ ~$ y' }7 J5 }
  52. }
    ; @, [: G* E8 r, \# u1 Q. e4 v
复制代码

8 q& }% l7 o4 h# o9 N" F+ H
# n" a1 y) C% g+ e) [* z
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似分享

官网相关资源

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