STM32F1_ 片内FLASH编程

发布时间:2023-06-08  

前言

今天总结“STM32F103片内FLASH编程”,对于学习编程的人来说“FLASH”这个词肯定很熟悉,因为FLASH主要用于存储数据。对于STM32来说,内部FLASH的容量有大有小,从16K到2M不等,主要看芯片的型号。


对于刚从51或者430转入学习ARM-Cortex M芯片的人来说,可能只知道内部FLASH是拿来装载程序的,事实上Cortex M芯片内部FLASH的可以拿来编程的,而且还可以像外部FLASH一样存储数据。对,今天提供的工程就是使用内部FLASH像外部FLASH一样读写数据,而且不是块或者页编程(即不覆盖临近地址数据)。


在实际的开发中,内部FLASH存储数据也是很重要的一点,特别是一些不常修改,而且很重要的标志位,或者一些配置等,存储在内部FLASH是很常见的。但是,这个地址一定要避开程序储存的地址(我计划后期整理编程地址规范及要求)。


今天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。


今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSFA6h6kwu5jb访问密码 bc34

STM32F10x的资料可以在我360云盘下载:

https://yunpan.cn/crBUdUGdYKam2访问密码 ca90

内容讲解

工程概要说明: 提供工程的源代码主要就是两个接口,一个写,一个读。

void FLASH_WriteNWord(uint16_t* pBuffer, uint32_t WriteAddr, uint16_t nWord);

void FLASH_ReadNWord(uint16_t* pBuffer, uint32_t ReadAddr, uint16_t nWord);

相信经常编程的人都明白函数接口的意思(我的命名规则还是算比较人性化的),就是和常见的访问外部FLASH一样,不会覆盖数据,我已经在实际工作中应用而且商业化了。

主要在地址“ADDR”处写一个标志位,在地址“ADDR + 1”连续写一串数据。如果标志位已经是“写过”,则不会再次写入数据,只会读取数据,意思就是说数据只写一次,以后每次只是读取数据(就是保证掉电后数据会不会丢失)。每次读取数据,通过串口打印出以前写入的数据是否正确。

提供的工程以简单为原则,详细中文注释,方便自己方便大家。

关于“STM32F103 片内FLASH编程”我把重要的几点在下面分别讲述:

一、写函数接口


该函数位于flash.c文件下面;

注意:

A.参数pBuffer是数据缓冲区,是16位的,而不是8位的。(其实这里可以整理为8位的,由于时间有限,如果有需要,请微信里回复我,我抽时间整理一下)。

B.参数长度也是16位的数量。

C.地址是内部FLASH地址,可别溢出了,也别和程序冲突。最好看看你的程序大小及芯片容量。

二、读函数接口


该函数位于flash.c文件下面;

注意的地方和上面写函数接口一样,主要是参数。

三、读写应用


该函数位于main.c文件下面;

蓝色表示读写标志位

红色表示读写数据

看一下就知道程序的流程是:“数据标志位”和“数据”都只写一次,而每次上电读一次标志位,再读数据。

这里的“数据标志位”地址就在“数据”前面。

四、今天的重点


重点A.页的大小:STM32F1小、中容量是1K,而大容量是2K,对于编程这里是有差异的。

重点B.STM32系列芯片中有很大一部分页的大小都是规则的,也就是说都是1K或许2K大小,学过其他系列芯片的人可能知道,在其他很多芯片中也有不是规则的,如STM32F4中基本都不是规则的(如下图F4芯片),有的一块16K、128K等不规则。这样的芯片对于今天提供的工程就不适用,今天提供工程适用于内部FLASH规则大小的芯片。

说明

今天提供的软件工程基于STM32F103大容量芯片,中等及小容量芯片也使用,只要修改flash.h文件一个宏(页大小就可以)。其实只要适当修改工程的部分配置,STM32F1的芯片都适用。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    万分钟全球少儿顶级IP内容,合作伙伴既有迪士尼、尼克、华纳、BBC、孩之宝、芝麻街、美泰、DHX、乐高等国际知名品牌,也有如央视动画、原创动力、奥飞、华强等国内少儿内容制作机构。 阿里......
    级别BioMatch生物识别算法,以极低的拒真率和认假率提供增强的安全性和实时性能。 广告 此外,指纹识别区可以收集更多的指纹特征点,即使是面对指纹识别率低的老年及少儿用户也极为友好。除此......
    泛知识领域的金融、文化、历史类专辑,泛娱乐领域的小说和娱乐类专辑,适合少儿的教育内容以及适合中老年的经典内容,既有音频播客也有音频直播的形式。 据悉,喜马拉雅于去年3月向港交所提交上市申请,大力......
    市网信办将会同市市场监管局等有关部门继续深挖违法线索,加强监督指导,推动餐饮经营者规范提供网络点餐服务,切实履行个人信息保护主体责任。同时根据“亮剑浦江”专项行动部署安排,主办单位还将围绕停车扫码、少儿......
    随时随地进行温度测量及热成像检测,广泛应用于电气及机电设备的巡检,外出检测服务,家用暖通空调检查,野外观测,甚至是少儿益智教育的尝试,开启不可见的温度世界的探索。 Fluke iSee™手机......
    情侣少儿不宜视频聊天:竟然有第三只眼在偷看;小王:Baby,好久没看到你了,好想你哦! 小红:嗯,我们视频吧,么么哒 热恋异地恋情侣小王和小红打开了电脑上某聊天软件视频,未曾想到,他们......
    带来了小米电视内容的指数级增长。目前小米电视内容的数量达到半年前的2.8倍,覆盖了电影、电视剧、综艺、体育、动漫、少儿、教育、纪录片在内的所有核心类别,无论是数量还是质量,小米电视都堪称电视行业的“内容之王”。 在电影方面,小米......
    检测到重大冲击时,可通过低功耗蓝牙与用户的智能手机连接而发出警报。 瑞典公司Halmstad推出一款「智慧 」儿童汽车座椅,减少儿童在汽车中可能面临的危险。如果孩子自行解开安全带,Holmbergs......
    聚焦儿童和青少年的教育成长。西安小学阶段的少儿群体将有机会透过此一项目深入了解身边的博物馆馆藏,感受历史传承和文化魅力,激发他们对传统文化的学习热情,并为......
    大学珠海校区管委会执行主任屈挺、珠海正菱科创投执行董事沈锐森、美国知名少儿英语学习培训品牌ABCmouse 中国区负责人Charlie Wu、知名幼教品牌大地幼教机构创始人、执行长程大坤等出席了本次发布会。发布会上,夏单......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>