网站建设工程师做论坛网站如何赚钱

bicheng/2026/1/17 22:24:18/文章来源:
网站建设工程师,做论坛网站如何赚钱,建筑公司企业网站,工信部备案网站打不开STM32 的某些系列 MCU 自带 EEPROM。笔者使用的 STM32L151RET6 自带 16 KB 的 EEPROM#xff0c;可以用来存储自定义的数据。在芯片选型时#xff0c;自带 EEPROM 也可以作为一个考量点#xff0c;省去了在外接 EEPROM 的烦恼。 下面简单介绍下 STM32 内部 EEPROM 的读写流…STM32 的某些系列 MCU 自带 EEPROM。笔者使用的 STM32L151RET6 自带 16 KB 的 EEPROM可以用来存储自定义的数据。在芯片选型时自带 EEPROM 也可以作为一个考量点省去了在外接 EEPROM 的烦恼。 下面简单介绍下 STM32 内部 EEPROM 的读写流程。 Memory Mapping 以笔者使用的这款 STM32L151RET6 MCU 为例自带 16 KB 的 EEPROM。Map 到了 2 个 Bank 中 Data EEPROM Bank1: 0x08080000 ~ 0x08081FFF (8KB)Data EEPROM Bank2: 0x08082000 ~ 0x08083FFF (8KB) Operations 内部 EEPROM 的操作无非就是 读取、写入、擦除 等操作。直接调用库函数或者 HAL 库中对应的 API 即可。这里只是对内部 EEPROM 的操作做一个简要的分析。 本文档主要以库函数中的 EEPROM 接口 API 进行分析。 Unlocking/locking memory STM32 复位后Data EEPROM 和 Program/erase 控制寄存器 (FLASH_PECR) 默认是 处于 lock 状态需要 unlock 之后才能执行写入和擦除操作。 如何 unlock 可以参考芯片对应的 datasheet简单的说就是往 Program/erase 密钥寄存器 (FLASH_PEKEYR) 写指定的密钥集即可。 Write PEKEY1 0x89ABCDEF to the Program/erase key register (FLASH_PEKEYR)Write PEKEY2 0x02030405 to the Program/erase key register (FLASH_PEKEYR) /*** brief Unlocks the data memory and FLASH_PECR register access.* param None* retval None*/ void DATA_EEPROM_Unlock(void) {if((FLASH-PECR FLASH_PECR_PELOCK) ! RESET){ /* Unlocking the Data memory and FLASH_PECR register access*/FLASH-PEKEYR FLASH_PEKEY1;FLASH-PEKEYR FLASH_PEKEY2;} }#define FLASH_PEKEY1 ((uint32_t)0x89ABCDEF) /*! Flash program erase key1 */ #define FLASH_PEKEY2 ((uint32_t)0x02030405) /*! Flash program erase key: used with FLASH_PEKEY2to unlock the write access to the FLASH_PECR register anddata EEPROM */如何 lock 可以参考芯片对应的 datasheet相较于 unlocklock 仅需要置位 Program/erase 控制寄存器 (FLASH_PECR) 中的 FLASH_PECR 位。 /*** brief Locks the Data memory and FLASH_PECR register access.* param None* retval None*/ void DATA_EEPROM_Lock(void) {/* Set the PELOCK Bit to lock the data memory and FLASH_PECR register access */FLASH-PECR | FLASH_PECR_PELOCK; }Erasing memory 对于 EEPROM支持以下 2 种擦除方式 Word 和 double word 擦除Mass 擦除 对于 Word 和 double word 擦除这种方式仅针对 EEPROM但是对于 Mass 擦除这种方式针对 Program memory、EEPROM 和 Option bytes。所以尽量在使用 EEPROM 的时候采用 Word 和 double word 擦除方式。 EEPROM 擦除方式也很简单只需要将值 0x00000000 写入到对应的有效的擦除地址中即可。 /*** brief Erase a word in data memory.* param Address: specifies the address to be erased.* note For STM32L1XX_MD, A data memory word is erased in the data memory only * if the address to load is the start address of a word (multiple of a word).* note To correctly run this function, the DATA_EEPROM_Unlock() function* must be called before.* Call the DATA_EEPROM_Lock() to disable the data EEPROM access* and Flash program erase control register access(recommended to protect * the DATA_EEPROM against possible unwanted operation).* retval FLASH Status: The returned value can be: * FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT.*/ FLASH_Status DATA_EEPROM_EraseWord(uint32_t Address) {FLASH_Status status FLASH_COMPLETE;/* Check the parameters */assert_param(IS_FLASH_DATA_ADDRESS(Address));/* Wait for last operation to be completed */status FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);if(status FLASH_COMPLETE){/* Write 00000000h to valid address in the data memory */*(__IO uint32_t *) Address 0x00000000;}/* Return the erase status */return status; }Programming memory 写入 EEPROM 的步骤也很简单一般的流程如下 unlockerasewritelock /*** brief Programs a word at a specified address in data memory without erase.* note To correctly run this function, the DATA_EEPROM_Unlock() function* must be called before.* Call the DATA_EEPROM_Lock() to disable the data EEPROM access* and Flash program erase control register access(recommended to protect * the DATA_EEPROM against possible unwanted operation).* note The function DATA_EEPROM_FixedTimeProgramCmd() can be called before * this function to configure the Fixed Time Programming.* param Address: specifies the address to be written.* param Data: specifies the data to be written.* retval FLASH Status: The returned value can be:* FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_COMPLETE or FLASH_TIMEOUT. */ FLASH_Status DATA_EEPROM_ProgramWord(uint32_t Address, uint32_t Data) {FLASH_Status status FLASH_COMPLETE;/* Check the parameters */assert_param(IS_FLASH_DATA_ADDRESS(Address));/* Wait for last operation to be completed */status FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);if(status FLASH_COMPLETE){*(__IO uint32_t *)Address Data;/* Wait for last operation to be completed */status FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);}/* Return the Write Status */return status; }Reading Momory 读取 EEPROM 中的数据就没那么多步骤了直接读取对应的 Map 的 Bank 即可。 Note 对于 EEPROM 的操作以下几点需要注意 尽量以 4 字节为一个单位进行操作在执行写入或者擦除操作的时候尽量将全局中断关闭以免中断触发引起其它的问题不要对相同的一个 Bank 同时做多种操作尽量保证一个 Bank 只有一种操作在执行 列出一段 EEPROM 的参考代码 void EEPROM_Test(void) {__set_PRIMASK(1);DATA_EEPROM_Unlock();/* EEPROM Operations */DATA_EEPROM_Lock();__set_PRIMASK(0); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青羊区建设局网站开网店如何运营和推广

1.导入图片 2.用魔法棒点击图片 3.点选择,反选 4.选择,选择并遮住 5.用画笔修饰证件照边缘 6. 7.更换要换的底的颜色 8.新建图层 9.使用快捷键altdelete键填充颜色。 10.移动图层,完成换底。

朝阳做网站网上电子商城系统

教育 -计算机网络-章节资料考试资料-四川农业大学【】 随堂测验 1、【单选题】以下哪一项不属于物联网的实现基础 A、可穿戴设备 B、RFID C、APP D、蓝牙 参考资料【 】 2、【单选题】以下哪一项不是解决网络安全问题的因素 A、 安全技术 B、法律法规 C、道德自律 D、多种应用 …

介绍化工项目建设和招聘的网站做的比较早的海淘网站

目录 🐶3.2.1 分区过程 🐶3.2.2 SplitSize计算和分区个数计算 🐶3.2.3 Partition的数目设置 1. 🥙对于数据读入阶段,输入文件被划分为多少个InputSplit就会需要多少初始task. 2. 🥙对于转换算子产生的…

电子商城网站开发价格北京做网站的网络公司

Windows phone的页面布局方式一般是依赖布局控件实现的,而布局控件有三种Grid,StackPanel和Canvas Grid是网格布局方式,相当于一个表格,有行和列,新建一个Windows phone项目,打开MainPage.xaml,…

弄网站赚钱吗wordpress源码系统下载地址

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案,避免map.fixedLight true,导致的光照效果太强,模型太亮的问题。 问题来源: 1.Cesium1.47版本加载tileset.json文件跟Mars3d最新版加载文件存在差异效果 Cesium1.47…

做视频怎样传到网站给自己的网站起名字

697. 数组的度 解题思路 首先创建一个IndexMap 键表示元素 值表示一个列表List list存储该元素在数组的所有索引之后再次创建一个map1 针对上面的List 键表示列表的长度 值表示索引的差值遍历indexmap 将所有的list的长度 和 索引的差值存储遍历map1 找到最大的key 那么这个Ke…

常用企业网站模板对比网站数据展示

在Kubernetes环境中,故障排除是管理者日常工作中不可或缺的一部分。随着容器化应用的广泛采用,需要一种高效的方法来诊断和解决Pod内部的问题。本文将重点介绍如何利用抓包技术提升Kubernetes环境中Pod内部故障排除的效率。 为什么需要Pod内抓包 在Kube…

建设一个班级网站的具体步骤网站开发技能证书

洞悉全球汽车产业格局,前瞻业界未来趋势。2023年7月27日-30日,时隔三年,重聚武汉国际博览中心,2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会,掀起行业热点新高…

做网站泉州wordpress 前后台都进不去

问题描述 第一种方法 每一行放一个皇后边放皇后边判断是否符合条件递归到第n行&#xff0c;则说明当前方案符合条件&#xff0c;进行遍历 代码实现 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 10;int…

如何申请个人网站怎么把自己的网站推广出去

【SpringBoot实战】基于阿里云实现文件上传 在实际项目开发中&#xff0c;不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档&#xff0c;但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。 引入依赖 <dependencies><!-- 阿里云oss…

自己做的网页怎么上传到网站北京网站优化体验

文章目录 一、Tomcat 安装1.1 选择合适的 Tomcat 版本1.2 下载 Tomcat1.3 配置环境变量 二、 运行 Tomcat2.1 启动 Tomcat2.2 关闭 Tomcat 参考资料 一、Tomcat 安装 1.1 选择合适的 Tomcat 版本 Apache Tomcat 是 Jakarta EE&#xff08;正式JavaEE&#xff09;技术子集的开…

做网站多少钱一年二次开发包

今天刷SQL简单查询&#xff0c;大家有兴趣可以刷一下 目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 总结归纳&#xff1a; 知识补充&#xff1a; 关于LIKE操作符/运算符 LIKE其他使用场景包括 LIKE模糊匹配情况 相关表数据&#xff1a; 1、student_info表 2、sc…

dedecms网站别名解析世界十大软件公司排名

---- 整理自B站UP主 踌躇月光 的视频 1. 全加器 用门电路实现两个二进制数相加并求出和的组合线路&#xff0c;称为一位全加器。一位全加器可以处理低位进位&#xff0c;并输出本位加法进位。全加器比半加器多了一位进位。 1.1 实验 1&#xff1a;通过两个半加器设计全加器 1.…

网站建设合同定义南阳seo长尾关键词

ESP32和ESP8266的ESP-MESH 功能介绍一、介绍ESP-MESH二、安装painlessMesh库三、ESP-MESH基本示例&#xff08;广播消息&#xff09;四、示范 功能介绍 了解如何使用ESP-MESH网络协议通过ESP32和ESP8266 NodeMCU板构建网状网络。 ESP-MESH允许多个设备&#xff08;节点&#x…

公司网站在哪备案logo设计网站官网

https://bbs.espressif.com/viewtopic.php?t75242#p100294 https://blog.csdn.net/ydogg/article/details/72598752

网页设计音乐网站旅游类网站策划建设_

GPT-4 Turbo、功能融合&#xff1a;OpenAI 首个开发者大会回顾 就在昨天 2023 年 11 月 6 日&#xff0c;OpenAI 举行了首个开发者大会 DevDay&#xff0c;即使作为目前大语言模型行业的领军者&#xff0c;OpenAI 卷起来可一点都不比同行差。 OpenAI 在大会上不仅公布了新的 …

网站主题如何自己做资源网站

1.分发简介 RabbitMQ不设置的话默认采用轮询方式分发消息,你一个我一个(公平);但实际生活中,由于处理速度不同,若还采用轮询方式分发会导致处理速度快的空等待,因此我们采用不公平分发 2.不公平分发 在消费者这侧设置即可,以之前的Worker3和Worker4为例 2.1.Worker3 packa…

网站开发主要任务怎么做网站一张图

最新版风车IM通讯iosapph5三端源码及视频教程 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 Redis 7 2.放行端口如下&#xff1a; 666 6600 6700 7000&#xff08;用作前端&#xff09; 7001&#xff08;用作后端&#xff09; 3.宝塔数据库添加数据库旁边有个ro…

网站关联词搜索怎么做网站怎么做中英文交互

【User Tech】2024 我们来啦&#xff01; 今年&#xff0c;【User Tech】将更加专注于为社区用户提供技术功能解读、热点答疑&#xff0c;聚焦更丰富、更多样化的行业或使用场景的用户案例。我们期待通过分享更多关于 Milvus Cloud 的实战经验&#xff0c;为大家在 AI、大模型、…

徐州百度快照优化临漳seo整站排名

背景介绍 什么代码覆盖&#xff1f; 代码覆盖(Code coverage)是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。简单来理解&#xff0c;就是单元测试中代码执行量与代码总量之间的比率。 Java常用的单元测试覆盖率…