历史上的今天

今天是:2024年08月31日(星期六)

2021年08月31日 | 51单片机-实践操作

发布者:Tiger8 来源: eefocus关键字:51单片机  实践操作  函数分析 手机看文章 扫描二维码
随时随地手机看文章

上一讲的代码中,我们只需重点关注“UART_E2Write();”和“UART_E2Read();”,其他代码都与前几讲的“液晶屏与串口”的代码思路一样。


1.写函数分析

首先先分析“UART_E2Write();”。

判断字符串的前部分是否为“E2Write:”然后读取出要在EEPROM哪个地址开始写入数据,k则是记录了要写多少了字节进去,RXDBUF[j+12]之后的数据就是代表真正要写进去的数据。


比如我们在电脑端窗口发送如下字符串:E2Write:084,I love learning SCM

前面的字符串判断通过,然后是确定要写入的起始地址,地址是84(全部地址是0~255),

记住不能只单单写“E2Write:84,I love learning SCM”,不能写少一个0,

如果要写入的起始地址为6,也要补充前面的两个0(006),这是程序里作为判断的要求。


K就是得到了“I love learning SCM”有多少个字符,E2BUF[j]从第0个元素开始存取字符串“I love learning SCM”。


接着把E2BUF数组的内容写进EEPROM,串口打印出“写入完成!”的提示在电脑端窗口显示出来,紧接着提示我们此时写到了哪个地址了。


这里我们做测试,在EEPROM的第0个地址开始写字符串数据进去

15.12.png

“I love learning SCM”这段字符串的字节长度为19,串口提示我们现在写到了18这个地址了,也就是前面写进的数据的地址为“0~18”,我们想接着写字符串连着的话,就从019开始写。


记住,由于数组的长度有限,我们一次写入的数据不要超过100个字节


2.读函数分析

“UART_E2Read();”的分析就比较简单了,首先判断字符串“E2Read:”是否正确,然后再确定要从EEPROM的哪个地址开始读,n就是确定要读出多少个字节数据,如果要读15个数据,必须写015,原理与前面一样。接着是把从EEPROM读出的数据先暂存在E2BUF数组中,然后再把E2BUF数组的内容打印出来在电脑端窗口显示出来。


我们从002号地址开始读13个数据出来

15.13.png

读出的数据正是我们之前写入的一部分。


3.存取信息

我们也可以在EEPROM中存入127个汉字和标点符号

我们把宋老师的一段语录经过修改凑齐127个汉字和标点符号,把这些内容全部写进EEPROM中。


内容如下:

“对于技术来说,技术水平高低直接决定你的工资薪酬。技术如果学的不好,那工作都找不到,更谈不上工资待遇了,而技术做的好,那工资就自然会高。我们不要把过多的精力关注在能挣多少钱上,而应该学会如何提高自身的技术,只要技术水平高,比很多人都厉害,钱自然就找上门了。”


写入操作如下

15.14.png

15.15.png

15.16.png


读出操作如下

15.17.png

15.18.png

15.19.png


关键字:51单片机  实践操作  函数分析 引用地址:51单片机-实践操作

上一篇:51单片机-串口&EEPROM
下一篇:51单片机—红外遥控

推荐阅读

#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "lcd.h"#include "usart.h"#include "timer.h"#include "beep.h" extern u32 sec; int main(void) { delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级...
  跨越1300公里,从江南水乡到西北塞外,太阳能路灯和巨型的输变电网不断从窗外闪过,提醒我古老的敦煌在新时代焕发着更加夺目的光彩。 自2009年以来,首批光伏特许权项目在敦煌荒凉的戈壁滩上落成,太阳能光伏这种极为充沛而独特的资源逐渐走入大众视野,一再打破长期以来内陆戈壁在人们心中“荒凉、干枯、死亡”的形象。  这次入塞,我把目的地定在...
据MSPoweruser报道,六月,Microsoft 发布了适用于 Android 设备的 Microsoft Defender ATP。Microsoft Defender ATP(高级威胁防护)是一项企业端点安全服务,可帮助企业网络预防,检测,调查和响应高级威胁。该应用程序以前只能在 Windows 10等台式机平台上使用,现在可以从 Google Play 商店下载。适用于 Android 的 Microsoft Defende...
广告摘要声明广告【文/歌者】8月30日,新时达发布公告称,同意与上海熠莉科技发展合伙企业(有限合伙)共同出资设立合资公司——阿马尔(上海)机器人有限公司,开展服务机器人相关业务,阿马尔机器人注册资本为人民币 1000万元,其中新时达以自有资金出资人民币700万元,持股比例为70%,上海熠莉科技发展合伙企业(有限合伙)以自有资金出资人民币300万...

史海拾趣

问答坊 | AI 解惑

广深高速公路监控方案

广州-深圳高速公路原CCTV系统采用光端机+矩阵的模式,外场视频采用点对点光端机,传输至收费站后由复用光端机复用上传到路段监控中心矩阵输出进行监控。 由于原系统采用的是光端机多级级联方式,且线路已经老化,图像质量已不能满足监控需求。针 ...…

查看全部问答∨

51单片机到底使用哪种晶振好

从定时器中断准确的角度看,12M的晶振可以算出每个机器周期为1微妙 从串口的角度看,使用11.0592M可以准确算出定时器起始值 我现在要自己设计一个电路板,请问使用哪种好呢?谢谢。…

查看全部问答∨

WINCE写注册表乱码

int MAX_SIZE = 256;         HKEY  hKey1;         wchar_t *key1Value = L\"abc\";//这里写成中文结果也相同         char *key1buf = new char[MAX_SIZE];   &nb ...…

查看全部问答∨

我想问一下关于单片机前景与公司的情况

我刚学单片机,感觉挺有兴趣的,想问一下单片机的前景如何,是否有发展空间? 世界上最好的单片机与嵌入式系统有关的公司是哪一家啊?…

查看全部问答∨

烧写f2812 flash的困惑续

   非常感谢两位高手的指点,使我明白了很多。    但俺还有不明白之处需要向两位高手请教。比如,EEWORLD给的例子程序中的flash.cmd文件一般为: MEMORY { PAGE 0 :    OTP        ...…

查看全部问答∨

quartus ii 中自动分配管脚的三种方法

本文转载于网络 1.编写tcl文件 (1)在Quartus中新建一个Tcl Scripe File,文件内容的格式如下: #setup.tcl#setup pin settingset_global_assignment -name RESERVE_ALL_UNUSED_PINS \"AS INPUT TRI-STATED\"set_global_assignment -name ENA ...…

查看全部问答∨

基于FPGA的POWERLINK从站解决方案

基于FPGA的POWERLINK从站解决方案…

查看全部问答∨

让操作库变得简单(野火的)

呵呵新手可以好好学习下…

查看全部问答∨

关于旋转倒立摆大家的控制程序怎么写的?

本帖最后由 paulhyde 于 2014-9-15 03:21 编辑 亲们说说你们对程序的思路,参考参考    …

查看全部问答∨

RTX与WIN32共享内存通信

我在MFC中创建共享内存成功,但是在RTX进程中打不开共享内存,哪位大侠帮忙解决一下?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved