历史上的今天
返回首页

历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | STM8S FLASH与EEPROM读写操作

2019-11-07 来源:eefocus

以下为FLASH操作:


#include "flash.h"

#include "stm8s_flash.h"

 

 

void Flash_Write_bytes(uint32_t Address , uint8_t * DataBuff,uint16_t length)

{

  uint16_t Count=0;

  for( Count=0 ; Count  {

    FLASH_ProgramByte_User(Address+Count,DataBuff[Count]);

  }

}

 

 

 

void FLASH_ProgramByte_User(uint32_t Address, uint8_t Data)

//将库函数中u16改为u32,否则当地址超过10000H时出错

{

    /* Check parameters */

    assert_param(IS_FLASH_ADDRESS_OK(Address));

    *(PointerAttr uint8_t*) (uint32_t)Address = Data;

}

注:写FLASH前需要解锁   


FLASH_Unlock(FLASH_MEMTYPE_PROG);  //FLASH解锁


以下为EEPROM操作:


#include "EEPROM.h"

#include "stm8s_flash.h"

 

 

/*******************************************************************************

* ==EEPROM初始化函数==

* FLASH_DeInit(); --> 复位EEPROM的寄存器值

* FLASH_Unlock(FLASH_MEMTYPE_DATA); --> 解锁 对 Data EEPROM memory 进行操作

* FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD); --> 标准编程时间

*******************************************************************************/

void EEPROM_INIT(void)

{

FLASH_DeInit();

FLASH_Unlock(FLASH_MEMTYPE_DATA);

FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);

}

 

/****************************************************************************************

*  Function: Derive_EPWrite                                                                        

*  Object: 写EEPROM

*  输入: 头地址(0~2048)  数据指针  数据长

*  输出: 无                                         

*  备注:  2K EEPROM  不能超过

****************************************************************************************/

void Derive_EPWrite(u16 Adr, u8 *pData, u16 Len)

{

u8 *p;

//p指针指向EEPROM 对应的单元

p = (u8*)0x4000 + Adr;   

//解锁

FLASH_Unlock(FLASH_MEMTYPE_DATA);

//写数据

for( ; Len > 0; Len--)

{

Refresh_WWDG_Window(); //喂狗

*p++ = *pData++;

//等待写完成

while(!(FLASH_GetFlagStatus(FLASH_FLAG_EOP))); 

//加锁

FLASH_Lock(FLASH_MEMTYPE_DATA);

}

 

/****************************************************************************************

*  Function: Derive_EPRead                                                                         

*  Object: 读EEPROM

*  输入: 头地址(0~2048) 数据存放指针 数据长

*  输出: 无                                         

*  备注:  2K EEPROM

****************************************************************************************/

void Derive_EPRead(u16 Adr, u8 *pData, u16 Len)

{

u8 *p;

//p指针指向EEPROM 对应的单元

p = (u8*)0x4000 + Adr; 

//解锁

FLASH_Unlock(FLASH_MEMTYPE_DATA);

//读数据

for( ; Len > 0; Len--)

{

*pData++ = *p++;

Refresh_WWDG_Window(); //喂狗

}

//加锁EEPROM

FLASH_Lock(FLASH_MEMTYPE_DATA);

}


推荐阅读

史海拾趣

扬州国芯(Gcore)公司的发展小趣事

扬州国芯(Gcore)公司发展的五个故事

故事一:成立与初期发展

扬州国芯半导体有限公司成立于2011年,起初便定位于集成电路产品的设计、测试、销售与服务。公司总部位于历史文化名城扬州,并在深圳设立了销售办事处,以便更好地服务国内外市场。成立初期,扬州国芯便专注于研发集成度高、低噪声、低功耗、高可靠性的模拟芯片及数模混合芯片产品。通过不懈的努力,公司逐渐在运算放大器、比较器、电源管理等领域形成了自己的核心产品线,为后续的快速发展奠定了坚实基础。

故事二:技术创新与产品研发

扬州国芯深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进高端人才,并与国内外多所知名高校和科研机构建立了紧密的合作关系。经过多年的努力,扬州国芯成功研发出了一系列具有自主知识产权的芯片产品,如锂电池充电管理芯片、马达驱动芯片等,这些产品性能优越,品质可靠,迅速赢得了市场的认可。此外,公司还积极参与国家标准和行业标准的制定,进一步提升了企业的行业地位和影响力。

故事三:市场拓展与品牌建设

随着产品线的不断丰富和技术的持续创新,扬州国芯开始积极拓展国内外市场。公司通过参加各类行业展会、举办技术研讨会等方式,加强与客户的沟通和交流,不断提升品牌知名度和美誉度。同时,公司还注重售后服务体系的建设,为客户提供全方位、一站式的解决方案和服务。这些措施有效地推动了公司市场份额的快速增长,使扬州国芯在激烈的市场竞争中脱颖而出。

故事四:政府支持与产业合作

扬州国芯的发展离不开当地政府的支持和产业合作。近年来,扬州市政府高度重视电子信息产业的发展,出台了一系列优惠政策和扶持措施,为扬州国芯等高科技企业提供了良好的发展环境。同时,公司还积极与上下游产业链企业开展合作,共同推动产业链的协同发展。这些合作不仅有助于降低生产成本、提高产品质量,还有助于公司更好地把握市场动态和客户需求,实现持续稳健的发展。

故事五:国际化战略与未来展望

面对全球集成电路产业的快速发展和市场竞争的日益激烈,扬州国芯制定了明确的国际化战略。公司积极寻求与国际知名企业的合作机会,引进先进的技术和管理经验,提升企业的国际竞争力。同时,公司还计划在海外设立研发中心和销售网络,以便更好地服务全球客户。展望未来,扬州国芯将继续秉承“以人才为根本、以市场为导向、以技术为核心、以顾客为目标”的经营宗旨,不断开创新的辉煌篇章。

Diplohmatic A/S公司的发展小趣事

Diplohmatic A/S公司非常重视企业文化的建设。公司倡导“创新、协作、诚信、共赢”的核心价值观,通过举办各类员工活动、开展团队建设和员工培训等方式,不断增强员工的归属感和凝聚力。这种积极向上的企业文化氛围激发了员工的创新精神和工作热情,为公司的持续发展提供了强大的动力。

General Dynamics SATCOM Technologies公司的发展小趣事

Diplohmatic A/S公司非常重视企业文化的建设。公司倡导“创新、协作、诚信、共赢”的核心价值观,通过举办各类员工活动、开展团队建设和员工培训等方式,不断增强员工的归属感和凝聚力。这种积极向上的企业文化氛围激发了员工的创新精神和工作热情,为公司的持续发展提供了强大的动力。

FOX [Fox Electronics]公司的发展小趣事

进入21世纪后,Fox Electronics意识到全球化对于企业发展的重要性。为了更好地服务全球客户,公司开始在全球范围内布局生产基地和销售网络。通过在亚洲、欧洲和北美等地设立分厂和办事处,Fox Electronics不仅缩短了交货周期,还降低了生产成本,提高了市场竞争力。同时,公司还加强了与全球供应链伙伴的合作,通过优化供应链管理,确保产品质量和交货期的稳定性。

ept Connectors公司的发展小趣事

EPT Connectors公司一直注重产品品质的管理和提升。公司建立了严格的质量管理体系,从原材料采购到产品制造、检测等各个环节都进行严格把关。同时,EPT还积极引进先进的生产设备和技术,不断提升产品的质量和性能。这些努力使得EPT的产品在市场上赢得了良好的口碑和客户的信任。许多知名电子企业都选择EPT作为他们的连接器供应商,这也进一步推动了EPT的发展。

台湾奇力(Chip)公司的发展小趣事

奇力公司的成功离不开与奇美集团的紧密合作。奇美集团是台湾知名的面板生产厂家,拥有强大的技术实力和市场份额。奇力公司作为奇美集团的子公司,得到了奇美集团在技术、资金和市场等方面的全力支持。通过与奇美集团的紧密合作,奇力公司得以快速发展,并在LED芯片市场上取得了显著的成绩。

问答坊 | AI 解惑

AD7705 中文1

本帖最后由 paulhyde 于 2014-9-15 09:13 编辑 AD7705 中文1  …

查看全部问答>

TL494的占空比

初学者,正在研究电源。可是遇到很多问题,恳切想向各位请教! 如何通过硬件来控制TL494的输出PWM的占空比?…

查看全部问答>

磁盘的一直在转,而且磁道是完全对称的环形,怎么准确寻址扇区呢?

扇区的绝对地址是相对于第0个扇区来说的,可是磁盘的一直在转,而且磁道是完全对称的环形,没有任何一个扇区在物理上是特殊的,系统是怎么寻址磁盘的第0扇区的呢?…

查看全部问答>

请熟悉techwell tw6802/6805的朋友帮忙

我系一在校学生,导师弄了块 techwell tw6802(似乎又象6805)的视频采集卡,让我写个linux驱动。 在官方网站上没有一点与技术相关的资料, 真奇怪。 请有做过这方面的朋友 能否发点 与tw6802/tw6805相关的资料(比如datasheet,代码都可)给 ...…

查看全部问答>

请大家给点建议:如何解决摄像头图像不同步的问题

    我用的Sensor是200万的,芯片输出为1600×1200,而我在应用层只采取了 1600×1130,我不确定是不是这样引起图像不同步的原因,还是别的什么原因。 …

查看全部问答>

学嵌入式系统需要掌握什么?目前对这个行业的需求怎么样?

本人是计算机专业的。由于现在快踏入大三的下学期了,大四下学期也就要找工作了,但我觉得现在自己学的东西还太片面了,也太广了。所以我想找一门自己感兴趣的专业方向作为自己这未来一年的奋斗目标,同时也为了将来的工作需要同,学一门精的课程。 ...…

查看全部问答>

关心STM32的ADC精度问题.

STM32具有12BIT ADC 确实很好,很强大!但也担心它的精度问题,听闻有3BIT线形误差。下面是AT91SAM7S64关于ADC误差的说明。…

查看全部问答>

网络版原理图==stm32核心板+w5100模块

http://www.stmsky.com/bbs/viewthread.php?tid=1446&extra=网络版原理图==stm32核心板+w5100模块可以直接联网 ping 192.168.1.2直接打开  显示  hello world…

查看全部问答>

Error[Pe065]: expected a ";"另一个程序就没有这个问题啊

#pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) {     static uchar index = 0;        results[index++] = ADC12MEM1;               // Mo ...…

查看全部问答>

大侠们帮忙啊

本人大四学生,机械电子工程专业,毕业设计课题发下来了,做基于S3C2440的UCOS II的系统移植,之前只有一些51单片机的基础,知道要做成这个很难,现在买了本UCOS的书,就是开发者编写的,还有本ARm体系,开发板也买了,很快就会到!!想请求各位怎 ...…

查看全部问答>