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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。7 l0 W# t6 D: N' f/ E

4 F' O2 a0 ^& |3 ~
20201109092040958.png

5 x6 x$ m' D, p- R. {, ~: o; s" l: u7 O
2.读保护函数9 S, t, G# _9 |: M$ {

( B; h& _; Z& v7 m( |2 d0 F3 i6 {( J( i0 D4 j0 e# Q' I
20201109092040946.png
. r1 O# u9 I9 f: Y, T# b' ^3 T
& u% f$ s1 Q2 Y

- v. S: p5 U- X  y9 v7 K
  1. int main(void): }8 v! g0 s3 v
  2. {
    9 m+ p* N7 V+ O- s# q+ D* b0 @# l
  3. Flash_EnableReadProtection();! {5 H& R! @* D8 e8 f
  4. While(1)! @! S) R" P. g+ Q+ B; ~
  5. {  a3 w% G3 X& X) S/ R
  6. 5 e/ }* _3 g# S# R( B  B! U4 m! V( U8 N
  7. }
    8 |, d; e& m5 ]3 m6 Z
  8. }- ^' U0 l7 V: [  M1 B0 r
  9. 4 f7 c$ X6 \: ~7 j3 ^1 J
  10. void Flash_EnableReadProtection(void)4 M$ H# [: w: \! M% w' v) B
  11. {
    9 v" y4 F/ n/ B+ K! l
  12. 0 y8 R- X  E7 M& \7 u0 @
  13.   FLASH_OBProgramInitTypeDef OBInit;: M  a' B8 }; v8 f
  14. 4 ?$ k- D5 E% K' r! g; _
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();: Q1 g' K9 O8 n( z- A: ~

  16. 8 z* i: J( E& d. ~4 ^4 _2 l- E
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);4 t, [! \$ n9 k- }1 n% }' }+ Q7 \+ C1 l
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)4 k5 ^# j* B& t" |  m- w
  19.   {
    % J2 {) r8 x: O# @
  20.     OBInit.OptionType = OPTIONBYTE_RDP;
    ! ^9 m6 R/ [9 {) |1 o3 Z4 F' w
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;
      q% c" b( U" F/ }8 k+ `
  22.     HAL_FLASH_Unlock();
    ' ^6 w0 X. `. d, C7 |$ t
  23.     HAL_FLASH_OB_Unlock();
    7 z9 ]3 t3 _8 V% W% K+ n
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    7 L$ @# _4 @* B+ O/ {+ i5 b' [
  25.     HAL_FLASH_OB_Lock();
    + G* R9 H3 j9 U5 j6 A2 ?7 K
  26.     HAL_FLASH_Lock();9 J2 k8 N* T  ?/ H2 O
  27.   }
    4 f7 q( g7 l% a! M$ K. u$ a2 ]
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();5 B, |5 {% t/ n, v3 i6 m; O# _
  29. . t; t' J# w: |0 ^0 m4 _) u7 d( E" D+ l
  30. }
    % I' G, |9 u+ v5 g2 x: R
  31. $ |  l0 Y& u- n! S
  32. void Flash_DisableReadProtection(void)0 e* r) {: [) D" o# x
  33. {: h4 P' O5 @! n7 [6 U) e- l! M$ K
  34. * ~- o: K+ [2 M# A1 k
  35.   FLASH_OBProgramInitTypeDef OBInit;# L$ i( [  \5 q7 W; ?5 m. m5 N5 X

  36. 0 ~+ L* [5 a9 `1 M
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();1 u3 e; V5 [: C0 P) O4 U

  38. 0 r9 V$ b2 s$ B# d: p
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);, S: z% z/ O5 H/ c4 d* [; A
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)$ ^+ X. L( t& R8 L+ o
  41.   {/ w  E3 b9 C2 @" ?! m. P8 b
  42.     OBInit.OptionType = OPTIONBYTE_RDP;5 [# ]0 x8 ^: R9 v3 c
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    0 V+ \8 L. z) a9 t. w2 K$ P
  44.     HAL_FLASH_Unlock();6 h) T6 |! ?: U8 g! ?
  45.     HAL_FLASH_OB_Unlock();2 L+ \; v7 j  V6 I4 p; r8 q
  46.     HAL_FLASHEx_OBProgram(&OBInit);; u+ P9 l3 n/ K0 ]% k# P; D) W
  47.     HAL_FLASH_OB_Lock();
    ) R* V& K  \* ^3 f' g
  48.     HAL_FLASH_Lock();0 r9 K" o- k8 b( P+ P
  49.   }% ?: k& L3 N. k. z8 q' X5 r2 W
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    ( d2 x3 L( f. u) T4 X5 j$ H

  51. ( G  Z" i. y6 R
  52. }4 R+ C% P: p+ p
复制代码
, g2 H2 C+ P2 `- |- b

) k4 G! ]7 R  V3 O2 u5 u
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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