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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。
2 T2 C3 v4 ^6 Z; r- y3 ^6 u# c
! e: [! |" G2 Y: {$ P
20201109092040958.png
0 L8 d  r( y  C( J

! u6 o  _5 W; f/ s0 j; K7 w2.读保护函数
5 C* ~6 }! ~/ F, h3 Z3 m
* Z! `1 |( \- |( |# N: L. {
& N  k* [! N2 M) ^. u! F
20201109092040946.png
) ]6 R) [7 n0 {: g8 G
9 N- `" Z( H8 y, @' ?
9 ^7 @( H7 {& ?. t- J+ v, B
  1. int main(void)# h* M3 O8 B' l" m6 ^1 D) x# f! ]
  2. {% A4 {$ N# I: m0 U
  3. Flash_EnableReadProtection();0 _% y" E( E' ^% W4 Z0 T: b" C
  4. While(1)$ d  n% D5 _* P! ^3 z6 V6 v
  5. {
    1 b8 C8 D/ ]4 E% [
  6. # g  V( s. R* ~
  7. }
    / h' I8 Z5 Y% n+ W, |' l
  8. }- O( F; \+ M9 z( G( R; G( N

  9. + n: H$ [% ?4 U) m; F7 ?$ X0 f
  10. void Flash_EnableReadProtection(void)
    " f  F. c  p5 G& F- ^! V
  11. {
    1 |. Z8 Y: E3 H; P

  12. 3 Q) j# T' X* @, S$ y1 S: T# [
  13.   FLASH_OBProgramInitTypeDef OBInit;
      `0 u, e1 N' F
  14. 1 b! f# }* f. R! A
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    9 V* M+ N" d3 L, t4 F0 R

  16. $ b) U3 j/ n' u9 g* v
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);1 u3 J# u$ [! L# C9 y
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    ! f  B& d# q$ Y+ b
  19.   {+ c0 U+ [- a8 l. l; D
  20.     OBInit.OptionType = OPTIONBYTE_RDP;
    , j7 W6 ?7 D# X! j
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;0 Y  ^# o' n2 e4 q4 O* L3 a
  22.     HAL_FLASH_Unlock();8 {- R! a" ~. X( s+ I1 H" H0 x
  23.     HAL_FLASH_OB_Unlock();/ |2 T1 K% h/ l: F1 O( S6 |
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    ( M$ i1 ^6 \1 i/ t  @+ i
  25.     HAL_FLASH_OB_Lock();
    6 b% {! \, M! J$ s
  26.     HAL_FLASH_Lock();4 c) U/ P( Z9 y4 C4 A. ]0 G
  27.   }" r6 z& {6 \2 m* g
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();( Y" i. n7 ~; B% }! c

  29. 7 v' ?1 W8 x( l
  30. }
    6 M$ b% B& C' k( c
  31. ; Y2 ~. P, b, S: b  m
  32. void Flash_DisableReadProtection(void)
    ( D/ F  G1 ?$ P4 A; k/ Q5 n
  33. {
    2 e' w) c9 O- n" ^& t

  34. # s$ h+ y' G+ Z# u2 H% y) l0 V
  35.   FLASH_OBProgramInitTypeDef OBInit;$ x6 E: P! K( ^; {8 a
  36. & q( d3 k2 c! f0 E9 ^3 W! y4 X
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();, ~' Y+ w1 O$ l& A! P
  38. / j- ?9 U3 W0 z8 e
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    " J0 w+ c: w0 x1 o' h
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)2 x: A: R$ [$ I7 c9 b5 d: ~
  41.   {. i; b& r" e; K
  42.     OBInit.OptionType = OPTIONBYTE_RDP;$ X8 y2 i9 b2 {1 `: S% }
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;: I; q: A; ~7 z
  44.     HAL_FLASH_Unlock();6 Z5 t% e* f- h
  45.     HAL_FLASH_OB_Unlock();" Z. e+ v" y2 t! M# D# M0 N( c
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    " t) X$ m0 S* W! `) u' Q# u
  47.     HAL_FLASH_OB_Lock();9 U# P  n! S$ [2 L5 \9 B: A6 p
  48.     HAL_FLASH_Lock();
    ' j% a" H, V! u4 ~/ J, H) |' u2 v* Y8 f
  49.   }  [3 N* W, h! b, N0 [2 Q
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();" \: M' u6 n0 d& \
  51.   k9 C% O. [8 ?# R' F
  52. }
    5 ]# b  X: d; l& ]. N
复制代码

; x; L, V6 F' k- G+ g9 Z* I4 m) o. ^) `! P
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似分享

官网相关资源

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