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

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

[复制链接]
STMCU小助手 发布时间:2021-11-8 01:02
1.在main函数中加入启用读保护功能。
2 e3 |% ~5 x  _4 t! s
! k. @3 ]3 u0 ~
20201109092040958.png
  o9 z% O3 h" u

4 A4 @6 r0 z6 u: _2.读保护函数( p3 t) ?+ T3 V/ B: B

2 n: i. l) P( {! `) p: y3 n
20201109092040946.png
: }& N2 p: s& [5 G  e  H
) o& W2 H, g+ s( |0 T
; k6 S) `! c! T3 N$ g9 A
  1. int main(void)
    ; r( `5 n, |& ~& _6 F
  2. {
    5 Z4 x2 E" K! S% f" j5 I6 {
  3. Flash_EnableReadProtection();
    ! Z: d7 _2 C" g# T; B# a
  4. While(1)
    7 o4 W& I  l" R
  5. {9 f' d: y2 K; e, \
  6. 8 _! n$ m# p  H7 _) G% k8 j
  7. }
    1 v2 [. q+ x0 M4 l9 I
  8. }  ?$ m/ `2 j+ F5 d
  9. ) {+ Y( r0 D7 Y, r8 U2 {
  10. void Flash_EnableReadProtection(void)2 m) u* O2 S1 L, F
  11. {
    . W+ h" j2 N. a0 D
  12. 4 V% [0 i2 i0 a. W( Y
  13.   FLASH_OBProgramInitTypeDef OBInit;
    2 ^2 [' `& B$ l, g( v

  14. 8 ]1 C6 }7 ?4 `, U/ i
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    ; \# P/ l# W# p& f2 a8 [; K! y
  16. 8 {5 d; A" `$ ^
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    : X) z. v# S5 ^1 t% L% b1 i
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    # [, K% x, [- O8 |/ E" S
  19.   {
    9 R  t2 Y" b' y! S' |- Z1 P) e
  20.     OBInit.OptionType = OPTIONBYTE_RDP;
    8 \) M/ E* D- x1 _
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;4 z9 I5 d& W' f2 f
  22.     HAL_FLASH_Unlock();: u! s6 C$ `/ F
  23.     HAL_FLASH_OB_Unlock();
    4 o/ {% T: n! J+ T( c
  24.     HAL_FLASHEx_OBProgram(&OBInit);
      G$ t5 g% c9 @% i9 y* x
  25.     HAL_FLASH_OB_Lock();
    2 k. ^! h( i0 q) x$ B( n; w
  26.     HAL_FLASH_Lock();# a1 @0 D! {/ c" c+ j& u
  27.   }* M6 ~: g* k* a7 ~$ l$ @* _4 l2 P
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();, a: h3 Y4 n1 r; N

  29. # }* g7 W" e7 k/ D/ m
  30. }
    5 L" e& ^/ }9 q- v

  31. 6 K* F; M8 X! L  W, d
  32. void Flash_DisableReadProtection(void)) j+ P: `6 [) z1 d0 q
  33. {  g- }. s3 y( e: F9 c, O' n' f
  34. % B$ a; z/ ~1 f, Y
  35.   FLASH_OBProgramInitTypeDef OBInit;
    ; L) H/ A% T4 l& F7 D/ x% U/ ~

  36. 2 _6 V6 T. D% Z2 s; c, V8 ^7 y
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();  ^8 k# y5 ~1 p( {
  38. 9 l" N0 w3 @' s, P" H$ v
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    1 c4 W' P, q6 m& z
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1); z( D4 \& G$ r& e
  41.   {
    4 u* L4 _4 y* W" p, n& N
  42.     OBInit.OptionType = OPTIONBYTE_RDP;+ I) X& B3 R7 Z5 ?2 b& H$ L
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;. s4 R% |8 f# w8 _/ Z
  44.     HAL_FLASH_Unlock();# V1 y- }' [% {% w& }, P
  45.     HAL_FLASH_OB_Unlock();
    % m& p8 S8 k+ V9 L
  46.     HAL_FLASHEx_OBProgram(&OBInit);- b1 \" a; X' R, o+ S
  47.     HAL_FLASH_OB_Lock();
    ( v' n' z4 q  C
  48.     HAL_FLASH_Lock();
      Y9 V3 P; r" d- M
  49.   }8 Q, u- q( P; Q
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    # g; Q; o& r/ a  v- H

  51.   K$ U9 C; r6 v1 p7 a- `+ e
  52. }5 @9 I; S! A( h& n4 ?4 ~' D
复制代码
# `8 O" A% D* }! s: p4 Q) V

  Y* n# }- r6 t  e+ E( [6 w/ W
赞 收藏 评论0 发布时间:2021-11-8 01:02

举报

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