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

STM8-SO8-DISCO】+ (3)EEPROM读写

[复制链接]
damiaa 发布时间:2019-1-23 15:17
本帖最后由 damiaa 于 2019-1-23 15:50 编辑 ( q' i  f! ~# j3 H3 ?
  C) I; Z4 u7 Q1 P
STM8-SO8-DISCO】+ EEPROM读写
+ R; s- c% C# {" e% I$ v' ~  Z【STM8-SO8-DISCO】+ EXIT中断中做按键去点灯帖子后 继续玩EEPROM. q7 k" F( ^4 {5 Q) G
EEPROM是地址0X4000开始的128字节; b" {2 P6 C8 q+ e% h: D
1,工程以上面的。
* J& y# |: `7 {. x2,EEPROM 写程序
  1. void write_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num)1 z. x7 b) ^/ {5 t
  2. {
    1 A- j. @- h7 g" Z9 i
  3.      uint8_t i;
    . v. s) A/ ?  O2 a% e
  4.      /* Define FLASH programming time */  Z3 `) I! y* s" z7 X" Q
  5.      FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);  }" ]: M& M" X9 |
  6.      /* Unlock Data memory */
    + L$ V3 u! {$ R/ p% r* {0 h
  7.      FLASH_Unlock(FLASH_MEMTYPE_DATA);
    $ e9 H( s: R: y1 p
  8.      for(i=0;i<num;i++)
    9 N) W$ A5 `* G0 D( f& i4 C0 S8 s) l# j
  9.         FLASH_ProgramByte(addr++, pDat[i]);
    9 {; H: a1 \- q5 ?% r5 S  g  j# A
  10.      FLASH_Lock(FLASH_MEMTYPE_DATA);
    5 h- x6 s0 j# S  q) @/ I
  11. }
复制代码

7 K& m: s4 z' l- Q3,EEPROM 读程序
, f7 B4 t# x4 h& q
  1. void read_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num)- k+ s" V9 u, I$ v1 a
  2. {+ P( G  x4 p* z; ]. G0 G. ~) \
  3.      uint8_t i;
    5 T9 n0 s5 h6 R2 {2 w
  4.      //eeprom_unlock();
    3 G/ B6 r7 t& _. X" f9 h
  5.      for(i=0;i<num;i++)
    * k. J) u4 v5 \' c
  6.         pDat[i] = FLASH_ReadByte(addr++);# p1 h! {1 w7 w5 r" P$ v
  7. }
复制代码
& P5 _5 }9 b3 ?' k4 ]$ i; n
4,把TIM4关掉(不知道为啥要这样)
4 i/ X4 H- G! _8 m, n  D  X7 y0 |5,主程序调用
1 U/ D0 |) e( v. }/ I
  1. #include "stm8s.h", @3 e0 E0 ~! |5 Q7 @' {- `% K' l
  2. #define LED_GPIO_PORT  (GPIOA)
    8 e+ e3 r+ E) w! ], h7 p
  3. #define LED_GPIO_PINS  (GPIO_PIN_3)
    ' U- m3 c1 m8 U8 N+ r
  4. #define USER_BUTTON_GPIO_PORT  (GPIOC)" F. D6 [7 X* U% m
  5. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
    1 k! K' P" T0 M" v& P; g
  6. #define TIM4_PERIOD       124( y9 O2 o5 B. }
  7. #define EEPROM_BEGIN 0x4000
    " x7 k. ?7 z/ C( R/ p
  8. void Delay(uint16_t nCount);" f7 _* k8 ~) O: U( V0 v; r: W4 p
  9. static void TIM4_Config(void);
    ' C6 w( I( R3 _( @0 d, I# i
  10. void LED1_Toggle(void);+ L+ F! k- _2 J( k
  11. void Exit_Init();
    ! k- i5 I2 M0 Z6 S; ~: T/ u$ @
  12. void eeprom_unlock(void);
    # T- W  E- n4 F! e* d
  13. void write_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num);, n, T. L; Q# t* H  x: Y9 T( B
  14. void read_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num);" q) ^8 y7 p, @
  15. uint32_t addr= EEPROM_BEGIN;
    % c8 o$ T% t7 g
  16. uint8_t test1[8],test2[8];
    4 O& _! G9 ]0 q9 e
  17. void main(void)$ b# w7 x$ V6 r0 U+ Y9 g8 F' S# }8 j
  18. {   : i% s" L9 R  J* m/ E
  19.      /* Initialize I/Os in Output Mode */4 [, S% `2 i3 @+ L6 B
  20.      GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);- Z( v( N- v8 q7 N6 E* |2 n
  21.     /* Initialize I/O in Input Mode with Interrupt */3 q" ^$ z6 R& O. v3 X# z6 G2 X
  22.     Exit_Init();. r& F: k& P, D4 W* C% @
  23.     /* TIM4 configuration -----------------------------------------*/
    ' [5 u; g. x4 A- T. n+ e
  24.     //TIM4_Config();
    . ?) M2 j) R7 b! n
  25.     while (1), ?& H% i9 R) l! T
  26.     {
    , Z! s1 ?7 r5 U& z8 {/ a6 P) M. \
  27.         uint8_t j;' r2 D; i- s7 \$ P5 d/ f7 L$ }
  28.         for(j=0;j<8;j++)/ Z7 z  N4 y- @; _  q) L6 O
  29.             test1[j] =10+j;
    2 R/ ?) X' j* d5 e' l
  30.         write_eeprom(EEPROM_BEGIN,&test1[0],8);
    6 F/ H: Q: d. ^) o/ x& r/ j* F
  31.         Delay(10);
    ! X* J1 y1 k; \& p) O% e
  32.         read_eeprom(EEPROM_BEGIN,&test2[0],8);
    2 U0 [6 {! G. s) V, _  Q
  33.         Delay(10); - v: ]$ Y* |$ D- v- z3 N" s3 {8 |
  34.     }
复制代码
+ j  f2 ^8 p) L9 J* C, q0 Z
6,结果:
- N( ~9 o1 s. \2 z3 q QQ图片20190123151229.png
+ ~. m' j6 i' T6 Z0 `6 U7,代码: eeprom_uart_test.zip (874.57 KB, 下载次数: 14)
收藏 评论7 发布时间:2019-1-23 15:17

举报

7个回答
xujiantj 回答时间:2019-1-24 09:20:02
学习一下
damiaa 回答时间:2019-1-24 09:42:25
xujiantj 发表于 2019-1-24 09:20' E/ j0 v8 R! b. D+ l  |' Z
学习一下

' S9 M) w" y; y! c, c
lanbu 回答时间:2019-1-24 10:04:13
学些下
Kevin_G 回答时间:2019-1-24 10:06:39
好东西,谢谢分享
damiaa 回答时间:2019-1-24 11:59:34
@lanbu @Kevin201707
yangjiyou1969 回答时间:2019-3-6 08:23:32
正好需要
lwg8458 回答时间:2019-3-6 10:04:05
学习
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版