历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2020年01月08日 | 写STM8flash和写外部flash EN25Q16A-104HIP 的函数小纪

2020-01-08 来源:eefocus

写外部flash EN25Q16A-104HIP 的函数


uint8 program_data(uint16 flash_addr, uint8 buffer[], uint8 len)

{

    uint8 i,flagstatus;

    uint16 address;

    int8 trycnt=1;

    //u16 timeout = 0xFFFF;

    

retry_lbl:

    if(trycnt-- <= 0) return(0);


    FLASH->CR1 &= (u8)(~0x01);

    FLASH->CR1 |= (u8)0x00;


    address  = flash_addr;

    for(i = 0; i < len; i++)

    {

        clr_watchdog(NULL);

        /* Unlock Program memory */

        FLASH_Unlock(FLASH_MEMTYPE_PROG);

        *((uint8 *) address) = buffer[i];

        while (flagstatus == 0x00)

        {

            flagstatus = (u8)(FLASH->IAPSR & ((u8)(0x04) |(u8)(0x01)));

            //timeout--;

        }

        FLASH_Lock(FLASH_MEMTYPE_PROG);

        address++;

    }

    address = flash_addr;

    for(i = 0; i < len; i++)

    {

        if(*((u8*) address) != buffer[i]) goto retry_lbl;

        address++;

    }

    return(1);

}


STM8 FLASH


oid flash_write(u16 addr, const void *in, u8 len)

{

    //FLASH->CR1 &= (u8) (~0x01);



    const u8 *data = (const u8 *)in;

    FLASH_Unlock(FLASH_MEMTYPE_PROG);

    while (len--)

    {

        *((u8*) addr++) = *data++;

        while (!(u8) (FLASH->IAPSR & ((u8) (0x04) | (u8) (0x01))))

            IWDG->KR = IWDG_KEY_REFRESH;

    }

    FLASH_Lock(FLASH_MEMTYPE_PROG);

}


推荐阅读

史海拾趣

GeneSiC公司的发展小趣事

FWBELL公司在电子行业中的五个发展故事

故事一:创立与早期发展

FWBELL公司,全称F.W. Bell Inc.,由Floyd Bell于1944年在美国创立。创立之初,公司专注于设计和制造霍尔发电机,这一创新性的产品迅速在市场中获得了认可。在随后的几十年里,FWBELL始终保持着在测量电流和磁场仪器领域的领先地位。从第一批配备固态电子设备的高斯计,到后续不断迭代的产品线,FWBELL的技术革新推动了整个行业的发展。这段早期的发展历程奠定了FWBELL在电子行业中的坚实基础。

故事二:产品线扩展与全球影响力

随着技术的不断进步和市场需求的扩大,FWBELL的产品线逐渐扩展,涵盖了高斯计、特斯拉计、霍尔元件、霍尔电流传感器以及标准磁铁等多个领域。这些产品凭借其卓越的性能和极高的性价比,在全球范围内赢得了广泛的客户群体。FWBELL的产品不仅被用于商业运输、军事、公务和通用航空等高端领域,还深入到了石油和天然气、工业、医疗以及空间探索等多个行业。这种广泛的行业覆盖进一步提升了FWBELL在全球电子行业中的影响力。

故事三:技术革新与领导地位

FWBELL一直致力于技术革新,不断推出具有领先技术水平的新产品。例如,其高斯计和特斯拉计采用了特有的探头动态补偿技术,确保了量程内的基本精度,并内置软件消除了复杂的校准过程。这些技术创新使得FWBELL的产品在性能上始终保持领先地位。同时,FWBELL还积极参与国际标准的制定和推广工作,为整个行业的发展贡献了自己的力量。

故事四:加入Meggitt集团与资源整合

2010年,FWBELL成为了Meggitt PLC.的全资子公司OECO LLC的一部分。这一战略性的整合为FWBELL带来了更多的资源和支持。Meggitt是一家全球工程集团,专注于为航空航天、国防和能源市场提供极端环境组件和智能子系统。加入Meggitt后,FWBELL得以与其他行业先驱如Securaplane、TFE Electronics和Artus等共同合作,进一步提升了其在电子行业中的竞争力。

故事五:中国市场拓展与本地化服务

近年来,FWBELL积极拓展中国市场,并在中国设立了分支机构以提供更便捷的本地化服务。这些分支机构不仅负责产品的销售和推广工作,还为客户提供专业的技术支持和售后服务。通过与中国本土企业的合作与交流,FWBELL得以更好地了解中国市场的需求变化和技术趋势,从而不断优化其产品和服务以满足客户的实际需求。这一系列的举措不仅加深了FWBELL在中国市场的影响力,也为其在全球范围内的持续发展奠定了坚实的基础。

Fermionics Lasertech Inc公司的发展小趣事

随着技术的不断完善,Fermionics Lasertech Inc公司的产品线逐渐丰富,从单一的激光切割设备扩展到激光打标、焊接、打孔等多个领域。公司开始加大市场推广力度,积极参加国内外各类电子展会,与潜在客户建立联系。同时,公司还注重品牌建设,通过优质的产品和服务赢得了良好的口碑,逐渐在电子行业树立了品牌形象。

Dicon Fiberoptics Inc公司的发展小趣事

进入21世纪后,随着互联网的普及和信息技术的飞速发展,光纤通信技术迎来了新的发展机遇。DiCon凭借其在微机电系统(MEMS)、微光学设计等领域的技术积累,成功推出了一系列具有创新性的光纤通信产品。这些产品不仅提高了数据传输的速度和稳定性,还降低了成本,进一步扩大了公司在市场上的份额。

Excellence Optoelectronics Inc公司的发展小趣事

在电子行业的早期,Excellence Optoelectronics Inc公司(简称EOI)就致力于LED技术的研发。公司创始人凭借对光电技术的深刻理解和对市场趋势的敏锐洞察,带领团队成功研发出了一系列高性能、高亮度的LED产品。这些产品不仅满足了市场对高品质LED的需求,还为公司赢得了良好的口碑。随着技术的不断进步,EOI不断推出创新产品,逐渐在LED市场中占据了重要地位。

Advanced Optoelectronic Technology Corp公司的发展小趣事

在追求经济效益的同时,AOTC也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和节能技术生产产品,降低对环境的影响。此外,公司还积极参与公益事业,支持教育、科研等领域的发展,为社会做出了积极贡献。

这些故事虽然是虚构的,但它们反映了一个电子行业中公司可能经历的一些典型发展阶段和挑战。在真实情况中,公司的发展路径会受到市场环境、技术变革、竞争态势等多种因素的影响。

Circuit Assembly公司的发展小趣事

随着技术的不断进步,Bel Power Solutions始终保持着对创新的热情。公司不断加大研发投入,积极引进先进技术和人才,推动产品的升级换代。其中,一项重要的技术突破是公司成功研发出具有高效能、高可靠性特点的电源转换技术。这一技术的推出,不仅提升了公司产品的竞争力,还为客户提供了更加优质、可靠的电源解决方案。同时,公司还根据市场需求,推出了多款定制化、个性化的电源产品,满足了不同客户的特殊需求。

问答坊 | AI 解惑

AT91SAM9261 65x45mm核心板

本人用四层板画滴,有需要PCB的找我. [ 本帖最后由 青叶漂零 于 2009-4-9 11:53 编辑 ]…

查看全部问答>

这个东东是串口转并口用的吗?具体怎么使用呢?

1) 这个东东是串口转并口用的吗? 2) 具体是在什么场合使用呢? 3) 如何使用呢? …

查看全部问答>

恢复就给分 我想上北京学嵌入式 哪里教的好?

先说明一点,希望有知道的给小弟一点建议,不知道的不要说,就说自己不清楚或者是知道一点,就行,这样我能准确的判断问题,不要担心分值的问题,只要回复我就给分,24小时之内结贴,说到做到,看我的结帖率就知道了! 小弟想问一个问题,我想上北 ...…

查看全部问答>

打印驱动的问题打印机的Form是不是必需的?

是这样的,我做了打印机的驱动,然后在“画笔”中打印,发现DrvEnablePDEV进去了,可是立马又调用了DrvDisablePDEV,连DrvStartDoc都没有进去,是不是因为没有AddForm导致的,还会不会有其它的问题导致这种现象?我非常渴望大家的意见。…

查看全部问答>

请教一个MSP430的 问题 急!!

430做的保护器,可以控制SIM300模块发送接收短信,现在有的问题,当设备运行久了,就会出现死机,或不响应命令即不接收短信,刚开始一切正常,过差不多一天多点就出现问题了,请高人指点…

查看全部问答>

老师给的一个任务,开始就遇到麻烦了,请教大家如何解决呢?关于ceconfig.h的

老师拿来一个程序让我修改,是用在手机上一个软件的算法,我在编译原代码的时候发现VC++6.0出错,提示没有cecongfig.h的头文件。小弟没有搞过嵌入式开发,上网一搜才知道是windous ce 下设置环境变量的头文件。 现在问题是,我的机子又不是用windo ...…

查看全部问答>

请教:RS485通讯时用到MAX3485,它的作用是什么?

RT,请教:RS485通讯时用到MAX3485,它的作用是什么?…

查看全部问答>

请问在那里设置签名

请问在那里设置签名…

查看全部问答>

关于MSP430的RTC问题

我用的是4系列的,问个关于内部RTC写入的问题。 当RTC配置好启动后。如果用户需要通过按键修改时间的话,修改RTCHOUR和RTCMIN的时候,需要事先关闭RTC模块吗?还是直接改写就可以呢?怎样做是安全的,不会出错的? 430的内部RTC还有什么其它的注 ...…

查看全部问答>

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十五章 DS18B20数字温度...

第三十五章  DS18B20数字温度传感器实验     STM32虽然内部自带了温度传感器,但是因为芯片温升较大等问题,与实际温度差别较大,所以,本章我们将向大家介绍如何通过STM32来读取外部数字温度传感器的温度,来得到较为准确的环 ...…

查看全部问答>