精华内容
下载资源
问答
  • EEPROM写入一数组并显示【51单片机】

    千次阅读 2018-10-08 17:43:32
    ** EEPROM写入有个时间TWR要求,一般是5ms,如果写的间隔过小可能写不进去。为留有一定余量,最好设成10ms** 以后要好好看数据手册啊,这个点卡了一下午… IIC.h #ifndef _IIC_H #define _IIC_H #include <...

    ** EEPROM写入有个时间TWR要求,一般是5ms,如果写的间隔过小可能写不进去。为留有一定余量,最好设成10ms**
    以后要好好看数据手册啊,这个点卡了一下午…

    IIC.h

    #ifndef _IIC_H
    #define _IIC_H
    
    #include <reg52.h>
    #include <intrins.h>
    
    sbit SCL = P2^1;
    sbit SDA = P2^0;
    
    sbit LE = P1^0;//
    sbit a = P2^2;
    sbit b = P2^3;
    sbit c = P2^4;
    void delay1s(void);
    void delay5us(void);
    void delay1ms(void);
    void delay10ms(void);   //误差 0us
    
    void AT24C02Write(unsigned char addr,unsigned char dat);
    unsigned char AT24C02Read(unsigned char addr);
    #endif
    

    main.c

    #include "iic.h"
    #include <stdio.h>
    
    unsigned char code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
    void display(unsigned char i,unsigned char num)
    {
    	switch(i)
    	{
    		//R->L
    		case 1:
    			a = 1;b = 1;c = 1;	break;
    		case 2:
    			a = 0;b = 1;	c = 1;break;
    		case 3:
    			a = 1;b = 0;c = 1;	break;
    		case 4:
    			a = 0;b = 0;c = 1;	break;
    		case 5:
    			a = 1;	b = 1;c = 0;break;
    		case 6:
    			a = 0;b = 1;c = 0;break;
    		case 7:
    			a = 1;b = 0;c = 0;break;
    		case 8:
    			a = 0;b = 0;	c = 0;			break;
    		default:break;
    	}
    	P0 = table[num];
    }
    
    void main()
    {
    	unsigned char dat,flag=0,i=0,j=0,num[6] = {9,5,0,8,2,3},key[6]={0,0,0,0,0,0};
    	
    	//write 
    	for(i = 0;i < 6;++i){
    		AT24C02Write(i,num[i]);
    		delay10ms();
    	}
    	
    	//read 
    	for(i = 0;i < 6;++i){
    		dat = AT24C02Read(i);
    		key[i]=dat;
    	
    	}
    	
    	//show 
    	while(1){	
    		display(j+1,key[j]);
    		++j;
    		delay1ms();
    		if(j == 6){
    			j = 0;
    		   	P0 = 1;
    			delay1ms();
    		}
    		
    	}
    }
    
    

    IIC.c

    #include "iic.h"
    void delay1s(void)   //误差 0us
    {
        unsigned char a,b,c;
        for(c=167;c>0;c--)
            for(b=171;b>0;b--)
                for(a=16;a>0;a--);
        _nop_();  //if Keil,require use intrins.h
    }
    void delay5us(void)   //误差 0us
    {
        unsigned char a;
        for(a=1;a>0;a--);
    }
    void delay1ms(void)   //误差 0us
    {
        unsigned char a,b,c;
        for(c=1;c>0;c--)
            for(b=142;b>0;b--)
                for(a=2;a>0;a--);
    }
    void delay10ms(void)   //误差 0us
    {
        unsigned char a,b,c;
        for(c=1;c>0;c--)
            for(b=38;b>0;b--)
                for(a=130;a>0;a--);
    }
    void I2C_Init()
    {
    	SCL = 1;
    	_nop_();
    	SDA = 1;
    	_nop_();
    }
    void I2C_Start()
    {
    	SDA = 1;
    	_nop_();
    	SCL = 1;
    	delay5us();
    	SDA = 0;
    	delay5us();
    	SCL = 0;
    	delay5us();
    }
    void I2C_Stop()
    {
    	SDA = 0;
    	_nop_();
    	SCL = 1;
    	delay5us();
    	SDA = 1;
    	delay5us();
    }
    unsigned char I2C_SentByte(unsigned char dat)
    {
    	unsigned char i=0,j=0;
    	for(i = 0;i < 8;i++)
    	{
    		SCL = 0;
    		delay5us();
    		SDA = dat >> 7;
    		dat = dat<<1;
    		delay5us();
    		SCL = 1;
    		delay5us();
    	}
    	SCL = 0;
    	SDA = 1;
    	_nop_();
    	SCL = 1;
    	_nop_();
    	while(SDA)
    	{
    		++j;
    		if(j > 200)
    		{
    			SCL = 0;
    			_nop_();
    			I2C_Stop();
    			return 0;
    		}
    	}
    	SCL = 0;
    	delay5us();
    	return 1;
    }
    unsigned char I2C_ReadByte()
    {
    	unsigned char dat = 0,i = 0;
    	SCL = 0;
    	delay5us();
    	SDA = 1;
    	delay5us();
    	for(i = 0; i < 8;++i)
    	{
    		SCL = 1;
    		delay5us();
    		dat <<= 1;
    		dat |= SDA;
    		delay5us();
    		SCL = 0;
    		delay5us();
    	}
    	return dat;
    }
    
    void AT24C02Write(unsigned char addr,unsigned char dat)
    {
    	I2C_Init();
    	I2C_Start();
    	I2C_SentByte(0xa0);
    	I2C_SentByte(addr);
    	I2C_SentByte(dat);
    	I2C_Stop();
    }
    
    unsigned char AT24C02Read(unsigned char addr)
    {
    	unsigned char dat;
    	I2C_Init();
    	I2C_Start();
    	I2C_SentByte(0xa0);
    	I2C_SentByte(addr);
    	I2C_Start();
    	I2C_SentByte(0xa1);
    	dat = I2C_ReadByte();
    	I2C_Stop();
    	return dat;
    }
    
    展开全文
  • eeprom写入限制

    2017-10-11 23:31:00
    2019独角兽企业重金招聘Python工程师标准>>> 在AT24C02里面,只能存放 256 字节。...单次,最多连续写入 16 字节。 转载于:https://my.oschina.net/richard28530/blog/1549368

    在AT24C02里面,只能存放 256 字节。<br> 单次,最多连续写入 16 字节。

    AT24c64芯片文档

    转载于:https://my.oschina.net/richard28530/blog/1549368

    展开全文
  • I2C向EEPROM写入一字节数据(I2C硬件) 相关链接: I2C物理层介绍 I2C协议层介绍 I2C固件库介绍 STM32的I2C特性及架构介绍 STM32的EEPROM简介 参考资料: [野火EmbedFire]《STM32库开发实战指南——基于野火霸天虎...

    《STM32从零开始学习历程》@EnzoReventon

    I2C向EEPROM写入一字节数据(I2C硬件)

    相关链接:
    I2C物理层介绍
    I2C协议层介绍
    I2C固件库介绍
    STM32的I2C特性及架构介绍
    STM32的EEPROM简介

    参考资料:
    [野火EmbedFire]《STM32库开发实战指南——基于野火霸天虎开发板》
    [正点原子]STM32F4开发指南-库函数版本_V1.2
    [ST]《STM32F4xx中文参考手册》
    [ATMEL]《AT24C02说明书》
    开发板硬件原理图;EEPROM原理图。

    1 实现功能

    本实验所要完成的任务是通过I2C向EEPROM中发送一个字节的数据。
    并且能够通过串口调试助手查看到发送状态与现实错误代码。

    2 硬件设计

    本实验采用的开发板为“正点原子”探索者F4开发板,核心芯片为F407ZGT6。
    使用到的外设及硬件为:USART1,I2C1,EEPROM
    USART1:PA9(T)—》RXE;PA10(R) —》TXE,将引脚使用跳线帽相连接即可。

    3 软件设计流程

    1. GPIO功能复用
    2. 初始化GPIO
    3. I2C初始化
    4. I2C使能
    5. 定义写入数据函数
    6. 根据EEPROM写数据流程调用函数。
      EEPROM写数据流程请参考:《STM32从零开始学习历程》——STM32的EEPROM简介。此处不做过多的详解。
    7. 编写主函数,并发送数据。
    8. 优化代码(超时,故障代码)

    4 代码分析

    1. I2C初始化函数
    void IIC_Init(void)
    {			
      	GPIO_InitTypeDef  GPIO_InitStructure;						//定义GPIO结构体
    	
    	I2C_InitTypeDef   I2C_InitStructure;						//定义I2C结构体
    
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);		//使能GPIOB时钟
    	
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);		//使能I2C1时钟
    	
    	GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_I2C1);		//复用PB8至I2C
    	
    	GPIO_PinAFConfig(GPIOB,GPIO_PinSource9,GPIO_AF_I2C1);		//复用PB9至I2C
    	
    
      //GPIOB8初始化SCL
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;					//普通输出模式
      GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;				//开漏输出
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;			//100MHz
      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;					//上拉
      GPIO_Init(GPIOB, &GPIO_InitStructure);						//初始化
    
    	
      //GPIOB9初始化SDA
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;					//普通输出模式
      GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;				//开漏输出
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;			//100MHz
      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;					//上拉
      GPIO_Init(GPIOB, &GPIO_InitStructure);						//初始化
    	
    	//初始化I2C结构体
    	I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;					//使能ask响应
    	I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit ;	//设定7为地址
    	I2C_InitStructure.I2C_ClockSpeed = 400000;					//设置时钟速度
    	I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2  ;		//指定时钟占空比1/2与9/16选择
    	I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;					//设置为I2C模式
    	I2C_InitStructure.I2C_OwnAddress1 = 0x78;					//指定自身的I2C设备地址。另一种说法:作为主机时可以不用写?
    	
    	I2C_Init(I2C1,&I2C_InitStructure);							//初始化结构体
    	
    	I2C_Cmd(I2C1,ENABLE);										//I2C使能
    	
    }
    
    1. I2C写入数据函数
    //========================================================================================
    
    //定义一个超时常数
    #define TIME_OUT 0x000FFFFF
    
    uint32_t count_wait = TIME_OUT;
    
    //========================================================================================
    
    //addr:是要写入存储单元的地址
    //date:是要写入的数据
    uint8_t EEPROM_Byte_Write(uint8_t addr, uint8_t date)
    {
    	
    //========================================================================================
    	
    //产生起始条件
    	I2C_GenerateSTART(I2C1,ENABLE);							//产生开始信号
    	
    	//重置count_wait
    	count_wait = TIME_OUT;
    	
    	//等待EV5事件,直到成功
    	//checkevent函数为专门用来检查EVx标志位的函数
    	while(I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT) != SUCCESS )
    	{
    		
    		count_wait--;										//循环次数自减
    				
    		if(count_wait ==  0)								//当循环次数减为0,标志程序运行着超时
    		{
    			return Error_Back(1);//表示程序执行卡死在EV5
    		}
    		
    	}
    	
    //========================================================================================
    	
    	//要发送的EEPROM设别地址 高四位:1010固定 低四位:A2 A1 A0 R/W 0 0 0 0  1010 0000 = 0xa0
    	I2C_Send7bitAddress(I2C1,0xa0,I2C_Direction_Transmitter);
    	
    	//重置count_wait
    	count_wait = TIME_OUT;
    	
    	//等待EV6事件,直到成功
    	while(I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) != SUCCESS )
    	{
    		
    		count_wait--;
    		
    		if(count_wait == 0)
    		{
    			return Error_Back(2);
    		}
    		
    	}
    	
    //========================================================================================
    	
    	//发送要写入的存储单元的地址
    	I2C_SendData(I2C1,addr);
    	
    	//重置count_wait
    	count_wait = TIME_OUT;
    	
    	//等待EV8_2事件,直到成功
    	while(I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED) != SUCCESS )
    	{
    		
    		count_wait--;
    		
    		if(count_wait == 0)
    		{
    			return Error_Back(3);
    		}
    		
    	}
    	
    //========================================================================================
    	
    	//发送要写入的数据
    	I2C_SendData(I2C1,date);
    	
    	//重置count_wait
    	count_wait = TIME_OUT;	
    	
    	//等待EV8_2事件,直到成功
    	while(I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED) != SUCCESS )
    	{
    		
    		count_wait--;
    		
    		if(count_wait == 0)
    		{
    			return Error_Back(4);
    		}		
    		
    	}
    		
    //========================================================================================
    	
    	//产生结束信号
    	I2C_GenerateSTOP(I2C1,ENABLE);
    
    	//表示程序执行正常	
    	return 0; 
    }
    
    1. 主函数
    int main(void)
    { 
    
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);		//设置系统中断优先级分组2
    	
    	delay_init(168);    								//初始化延时函数
    	
    	uart_init(115200);									//初始化串口波特率为115200
    	
    	LED_Init();											//初始化LED 
    	
     	LCD_Init();											//LCD初始化 
    	
    	KEY_Init(); 										//按键初始化  
    	
    	IIC_Init();											//I2C初始化
    	
    	EEPROM_Byte_Write(0x05, 0x22);						//向EEPROM的0x05的地址中写入0x22
    	
    	printf("okok");										//若上一行代码没有卡死将输出okok
    }
    
    

    5 效果展示

    1. 程序正常时:串口助手上显示okok,表明数据已经传输。

    在这里插入图片描述

    1. 我们将等待EV6事件完成时将条件更改,模拟EV6卡死在循环中,下载程序,串口助手显示错误3,我们便可以在程序中很快定位到EV6,错误3的地方进行检查。其余的以此类推。在这里插入图片描述

    6 小结

    这个实验不难,主要是熟练以下寄存器的使用已经一个设计的流程,其次,代码功能的优化也是非常重要的,在文中,错误代码的显示以及程序超时这两个功能(从野火那儿学习来的)都是属于代码优化。所以我们要放宽视野,多学学人家良好的编程习惯。谢谢!请各位大佬不吝赐教!

    展开全文
  • EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 简而言之就是你想断电后arduino还要保存一些参数,就使用EEPROM吧。 在各型号的arduino...

    转自:https://www.arduino.cn/thread-1157-1-1.html

    EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 简而言之就是你想断电后arduino还要保存一些参数,就使用EEPROM吧。 在各型号的arduino控制器上的AVR芯片均带有EEPROM,也有外接的EEPROM芯片,常见arduino控制器的EEPROM大小: Arduino UNO、Arduino duemilanove-m328、Zduino m328均使用ATmega328芯片,EEPROM都为1K Arduino duemilanove-m168的EEPROM为512bytes Arduino 2560的EEPROM为4K
    下面我们介绍arduino自带的EEPROM使用方法,arduino的库已经为我们准备好了EEPROM类库,我们要使用得先调用EEPROM.h,然后使用write和read方法,即可操作EEPROM。 另:下面的官方例子由于写成较早,所以讲EEPROM的大小都定为了512字节,实际使用中,大家可参照上面所说的EEPROM大小,自行更改。
    1.写入 选择 File>Examples>EEPROM>eeprom_write

    kittenblock中小学创客名师推荐的图形化编程软件

     
    /*
     
    * EEPROM Write
     
    *
     
    * Stores values read from analog input 0 into the EEPROM.
     
    * These values will stay in the EEPROM when the board is
     
    * turned off and may be retrieved later by another sketch.
     
    */
       
     
    #include <EEPROM.h>
       
     
    // EEPROM 的当前地址,即你将要写入的地址,这里就是从0开始写
     
    int addr = 0;
       
     
    void setup()
     
    {
     
    }
       
     
    void loop()
     
    {
     
      //模拟值读出后是一个0-1024的值,但每字节的大小为0-255,所以这里将值除以4再存储到val
     
      int val = analogRead(0) / 4;
     
      
     
      // write the value to the appropriate byte of the EEPROM.
     
      // these values will remain there when the board is
     
      // turned off.
     
      EEPROM.write(addr, val);
     
      
     
      // advance to the next address.  there are 512 bytes in
     
      // the EEPROM, so go back to 0 when we hit 512.
     
      addr = addr + 1;
     
      if (addr == 512)
     
        addr = 0;
     
      
     
      delay(100);
     
    }

    2.读取 选择 File>Examples>EEPROM>eeprom_read

    kittenblock中小学创客名师推荐的图形化编程软件

     
    /*
     
    * EEPROM Read
     
    *
     
    * Reads the value of each byte of the EEPROM and prints it
     
    * to the computer.
     
    * This example code is in the public domain.
     
    */
       
     
    #include <EEPROM.h>
       
     
    // start reading from the first byte (address 0) of the EEPROM
     
    int address = 0;
     
    byte value;
       
     
    void setup()
     
    {
     
      // initialize serial and wait for port to open:
     
      Serial.begin(9600);
     
      while (!Serial) {
     
        ; // wait for serial port to connect. Needed for Leonardo only
     
      }
     
    }
       
     
    void loop()
     
    {
     
      // read a byte from the current address of the EEPROM
     
      value = EEPROM.read(address);
     
      
     
      Serial.print(address);
     
      Serial.print("\t");
     
      Serial.print(value, DEC);
     
      Serial.println();
     
      
     
      // advance to the next address of the EEPROM
     
      address = address + 1;
     
      
     
      // there are only 512 bytes of EEPROM, from 0 to 511, so if we're
     
      // on address 512, wrap around to address 0
     
      if (address == 512)
     
        address = 0;
     
       
     
      delay(500);
     
    }

    3.清除 选择 File>Examples>EEPROM>eeprom_clear 清除EEPROM的内容,其实就是把EEPROM中每一个字节写入0,因为只用清一次零,所以整个程序都在setup部分完成。

    kittenblock中小学创客名师推荐的图形化编程软件

     
    /* * EEPROM Clear
     
    *
     
    * Sets all of the bytes of the EEPROM to 0.
     
    * This example code is in the public domain.
       
     
    */
     
    #include <EEPROM.h>
       
     
    void setup()
     
    {
     
      // 让EEPROM的512字节内容全部清零
     
      for (int i = 0; i < 512; i++)
     
        EEPROM.write(i, 0);
     
       
     
      // 清零工作完成后,将L灯点亮,提示EEPROM清零完成
     
      digitalWrite(13, HIGH);
     
    }
       
     
    void loop()
     
    {
     
    }

     

    转载于:https://www.cnblogs.com/MCSFX/p/10474789.html

    展开全文
  • I2C_EEPROM 写入多字节 小数

    千次阅读 2018-06-17 12:26:24
    一、写多字节void I2C_WriteMultibyte(uint8_t Addr,uint8_t *... void I2C_WriteMultibyte(uint8_t Addr,uint8_t *pBuffer,uint8_t num) //写入多个字节 { u8 i,temp; temp=num/8; //判断循环次数 for(...
  • 飞思卡尔单片机SC9S12G128 EEPROM写入数据前需要先擦除吗,可以单字节写入吗,,手册里好像没看到说明,求解
  • eeprom写入 读取数据按键中断控制读写操作向eeprom写入 读取数据按键中断控制读写操作向eeprom写入 读取数据按键中断控制读写操作向eeprom写入 读取数据按键中断控制读写操作向eeprom写入 读取数据按键...
  • STM32密码锁基于EEPROM写入和读取,使用按键输入数字,写入数组,将数组存入EEPROM中,首次进入需设置初始密码,输入密码三次错误,蜂鸣器报警
  • 本文主要介绍了延长FLASH与EEPROM芯片写入次数的办法。
  • EEPROM写入操作解析

    千次阅读 2013-04-07 19:47:00
    eepom一般的写操作我就不说,我要分析的它的页操作(其实也算不上是分析,都是百度谷歌的只是记录). 当对eeprom写比较大的数据时,一个一个写就比较繁琐了,此时...其实24系列的eeprom提供缓存的技术,你写入...
  • 14.6 EEPROM的页写入

    千次阅读 2016-07-08 06:23:38
    在向 EEPROM 连续写入多个字节的数据时,如果每写一个字节都要等待几 ms 的话,整体上的写入效率就太低了。因此 EEPROM 的厂商就想了一个办法,把 EEPROM 分页管理。24C01、24C02 这两个型号是 8 个字节一个页,而...
  • 开发电子产品时,常常需要断电后保存某些数据,这就需要使用FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次。FLASH的擦除不能单个字节进行,有一...
  • 基于8051测速程序并把数据写入eepROM
  • 首先我想要重复向某个地址写入,一般的想法就是直接写就可以了,但是调试了很多次,发现只有在第一次清除存储空间之后才能正确写入,其他时候读出的内容都与写入的不同。 原来这是因为内部的这一存储器,只能将 1 ...
  • 没买板子之前,用protues画过电路图,实现了通过i2c总线向EEPROM写入和读出数据。 今天,在自己买的板子上面写关于i2c总线的程序,有个地方忘了延时,调程序的时候很蛋疼。下面说说我对I2c总线的理解 i2c总线...
  • 现更换新方案(换了MCU)通过实际调试发现,可以向EEPROM写入数据,但无法从中读取出数据(通过烧写器将24C02芯片中的数据读出,发现与写入的相符,确定可以写入)。 这个问题比较费解: 能写入的话,说明pin...
  • IIC总线EEPROM读写

    2019-11-26 20:43:51
    采用IIC总线传输机制,通过单片机MCU的...(1)编写EEPROM写入程序,将数据(学号后面8位)保存在芯片,下载到开发板进行调试,实现显示写入完毕功能。 (2)编写EEPROM读出程序,将数据(学号后面8位)显示在数码管。
  • 发现是芯片的问题,我用的是24LC512,它的写入时序是要发送16位的地址,之前只发8位的,结果导致写入的地址跟读出来的地址不一样了,芯片没有写入数据之前都是0xFF...
  • 做项目需要将float型数据存到单片机自带的eeprom里,单片机型号是STC12C5A60S2。不过每次只能对一个字节进行操作即unsigned char型。之前存过unsigned long型的其实是一样的他们都要占用四个字节。可以用联合的方法...
  • 上文:STM32:硬件IIC,实现EEPROM写入和连续内存数据读取,但是出现数据出错(上) https://blog.csdn.net/qq_45689790/article/details/113729858#comments_15148487 按照手册内容实现连续数据的写入(但是不...
  • 对于实现EEPROM写入和连续内存数据读取,可以根据“AT24C01”数据手册,进行代码实现。:具体分析过程可以看我的另一个文章“【STM32-I2C学习总结】STM32:硬件-IIC详解 , 固件库编程 , 手把手教你实现IIC”手册中...
  • #define BufferSize 0x100 //打算写入256个字节数据 uint8_t WriteBuffer[BufferSize],ReadBuffer[BufferSize]; //数组大小为256,数据类型uint8 uint16_t i; /* USER CODE END PV */ /* Private function ...
  • 1.功能描述:该代码向EEPROM写入100字节数据 /功能描述:该代码向EEPROM写入100字节数据 #include <EEPROM.h> int addr = 0; //EEPROM数据地址 void setup() { Serial.begin(115200); Serial.println(""); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 766
精华内容 306
关键字:

eeprom写入