众拳【剑齿虎STM8】开发板学习笔记分享 第41讲 STM8内部EEPROM读写操作 目 录 41.1 EEPROM容量介绍 STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机构有所不同: ● 小容量STM8S器件 ─ 8K FLASH 程序存储器,每页 64 字节,共 128 页 ─ 640 字节数据 EEPROM,每页 64 字节,共 10 页。 ● 中容量STM8S器件 ─ 从 16K 到 32K FLASH 程序存储器,每页 512 字节,最多 64 页 ─ 1K 字节数据 EEPROM,每页 512 字节,共 2 页。 ● 大容量STM8S器件 ─ 从 64K 到 128K FLASH 程序存储器,每页 512 字节,最多 256 页 ─ 从 1K 到 2K 字节数据 EEPROM,每页 512 字节,共 4 页。 41.2 实验目的 掌握CPU内部EEPROM存储单元的操作步骤。掌握程序设计流程。 开发板送电后,按一下复位键后,程序执行写入和读取一次。 41.3 程序文件设计 41.3.1 main.c文件中的程序主程序就实现初始化和调用驱动程序,这样主程序控制思路清晰,流程简单。要想了解全面详实的程序,请大家参考光盘(网盘)中程序及程序注释。 /*********************************************************************** * 说 明: 内部EEPROM读写操作 * 开发平台: 剑齿虎STM8开发板 * 关注微信公众平台微信号:"zxkj-ly",免费获取STM8资料。 * STM8技术交流QQ群【335123291】 * 哈尔滨卓恩科技开发有限公司 * * 作 者: 刘洋 张殿东 * 版 本: V1.0 * 日 期: 2016-05-03 * * IAR开发环境 版本 V2.20.1 * ST库函数 版本 V2.2.0 ***********************************************************************/ #include "pbdata.h"//引入自定义公共头文件 void BSP_Configuration(void);//硬件初始化函数声明 /*********************************************************************** * 函 数 名: main * 功能说明: c程序入口 * 形 参:无 * 返 回 值: 错误代码(无需处理) ***********************************************************************/ int main(void) { u32 add_byte=0x4000; u8 val=0; BSP_Configuration();//硬件驱动初始化函数 FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD); //设置编程时间为标准时间的一般 FLASH_Unlock(FLASH_MEMTYPE_DATA);//解锁EEPROM FLASH_ProgramByte(add_byte,0xAB);//写数据操作函数 val=FLASH_ReadByte(add_byte);//读取单个字节 printf("%x\r\n",val); while(1)//主程序循环,反复执行循环体里的语句 { } } /*********************************************************************** * 函 数 名: BSP_Configuration * 功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。 * 形 参:无 * 返 回 值: 无 ***********************************************************************/ void BSP_Configuration(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//时钟速度为内部16M,1分频, UART1_Congfiguration();//调用RS232串口1初始化函数 LED_Init();//调用LED初始化函数 rim();//打开总中断 } /*断言函数:它的作用是在编程的过程中为程序提供参数检查*/ #ifdef USE_FULL_ASSERT void assert_failed(u8* file,u32 line) { while(1) { } } #endif 41.4 实验效果 没按下一次复位键,程序向内部EEPROM中写入一次数据,然后再读出来打印输出至显示器。 图41.1 向内部EEPROM写入数据
|