请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
damiaa 发布时间:2019-1-23 15:17
本帖最后由 damiaa 于 2019-1-23 15:50 编辑
9 a1 t# ?/ B8 W) e8 A/ K# s" Z6 k# Z! V# G& W" g# a
STM8-SO8-DISCO】+ EEPROM读写2 j  A8 m5 b5 a6 S! p
【STM8-SO8-DISCO】+ EXIT中断中做按键去点灯帖子后 继续玩EEPROM6 v1 n9 u  A2 E9 Y8 u
EEPROM是地址0X4000开始的128字节; C  r6 X" {5 S& F4 Y- ^+ P
1,工程以上面的。9 l1 x0 l: G2 N4 z% ?: S
2,EEPROM 写程序
  1. void write_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num)
    + s1 y# ~" k. o% E
  2. {
    5 l: t" I4 R# w
  3.      uint8_t i;
    ( C/ A$ j  O+ O! ^
  4.      /* Define FLASH programming time */
    ( ?; k+ g, Q! U: m# m1 y
  5.      FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
    1 J5 ^' x# V  r2 X( p4 A6 s
  6.      /* Unlock Data memory */) f) @2 z' s7 L5 W8 H
  7.      FLASH_Unlock(FLASH_MEMTYPE_DATA);
    ! M0 `2 S# W! \  T2 Q; g+ A4 p
  8.      for(i=0;i<num;i++)* \3 t* K$ [( c0 h3 q
  9.         FLASH_ProgramByte(addr++, pDat[i]);
    3 \1 R# j. b  x, N
  10.      FLASH_Lock(FLASH_MEMTYPE_DATA);
    ! Z+ |& `4 L2 E% U3 _
  11. }
复制代码
2 W2 k% t6 g; H, R. A( t5 n
3,EEPROM 读程序
) V8 q: [+ ]) w
  1. void read_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num)
    6 b# }- @2 l" }; D6 c
  2. {: E) Y' A/ O3 Q* Q. b" b
  3.      uint8_t i;
    8 O5 N8 s9 a6 M4 M1 }. G) o* h; J
  4.      //eeprom_unlock();
    0 Y7 W; g7 z9 L& g- x1 ~  m" Q
  5.      for(i=0;i<num;i++); T0 w- [9 z$ w" `% J, l7 G; V
  6.         pDat[i] = FLASH_ReadByte(addr++);
    * i) a* _  n. F: t  F* W- ]
  7. }
复制代码
: Y, r+ c$ s' ^8 U: c' x
4,把TIM4关掉(不知道为啥要这样)
* g/ @0 ?4 ~  o, ]+ D$ Z7 |5,主程序调用
, h5 @& |" x: R' o7 w' ^
  1. #include "stm8s.h"
    1 D4 x. I' U7 a: j. K' o
  2. #define LED_GPIO_PORT  (GPIOA)
    % t0 D4 k7 r/ M4 C
  3. #define LED_GPIO_PINS  (GPIO_PIN_3)" b/ Y3 z$ M5 s5 L' S
  4. #define USER_BUTTON_GPIO_PORT  (GPIOC): \! ?/ y% p* f6 p* l6 e
  5. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
    , P) r& ?# v7 W) g0 }
  6. #define TIM4_PERIOD       124
    ) W! ~% e$ k/ ~4 A: ?$ U: I
  7. #define EEPROM_BEGIN 0x4000$ g6 g* F! R  f0 e! L
  8. void Delay(uint16_t nCount);" V$ i- `% |/ L7 ]! Z5 x
  9. static void TIM4_Config(void);  d( @7 G3 f  G' b: [, v. s, I
  10. void LED1_Toggle(void);
    - n" o; l9 ]- N' @
  11. void Exit_Init();
    9 s' j% A# H3 p; T
  12. void eeprom_unlock(void);
    1 `' \9 j& r, ^6 i5 t8 o
  13. void write_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num);& B9 s2 v0 D, a3 k
  14. void read_eeprom(uint32_t addr,uint8_t *pDat,uint8_t num);) d/ k5 P! @5 A3 ~$ B( L9 s
  15. uint32_t addr= EEPROM_BEGIN;
    - g. ^7 d& w5 b$ f3 T/ o
  16. uint8_t test1[8],test2[8];
    . ~6 ]9 \8 l0 c+ L2 \+ P
  17. void main(void)* Z6 B. s9 s7 ~8 `# F- s3 Z, X7 C
  18. {   
    ! m  w; [; f- I' o& U1 v2 |
  19.      /* Initialize I/Os in Output Mode */% H$ S: n% Q4 f5 q0 \
  20.      GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
    1 L: ^) @3 k$ N5 f
  21.     /* Initialize I/O in Input Mode with Interrupt */
    5 n4 d) Q1 i& ~" W# @; {
  22.     Exit_Init();9 K0 j" x9 n( r( y2 B$ p% `! f: B
  23.     /* TIM4 configuration -----------------------------------------*/7 ~: ?8 I; s. V) d
  24.     //TIM4_Config();
    , V/ e# [" j( U
  25.     while (1)
    : O3 s4 ~! z- y6 Q
  26.     {
    ! k. O% L8 l' `# R
  27.         uint8_t j;% f) U, o+ C# z$ u& w8 T  X9 Z
  28.         for(j=0;j<8;j++)5 {- ?" [) _5 T2 ?, z9 j
  29.             test1[j] =10+j;& a+ B! [- E8 R/ I( \/ V: p
  30.         write_eeprom(EEPROM_BEGIN,&test1[0],8);3 x/ Y* _" F' C
  31.         Delay(10); 0 t5 d1 Q, _- z' K' Y/ \8 ~4 t9 r
  32.         read_eeprom(EEPROM_BEGIN,&test2[0],8);( V7 r- g  U7 _# Z, m0 a) n
  33.         Delay(10);
    2 ^) H: w3 y, s( ]' f: B7 h
  34.     }
复制代码
2 c" S% b" k' O  C  l
6,结果:( z& g9 z9 h( J" T3 n% p7 V5 W
QQ图片20190123151229.png
& u) x4 ^! @$ Z7,代码: 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
' v+ p5 }; P/ P. ?学习一下
  @% D4 D4 A3 @3 f
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 手机版