久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2794|回復: 21
收起左側

現在的很多單片機都有內置的EEPROM為什么還是有很多人使用外接的呢?

  [復制鏈接]
ID:978375 發表于 2022-11-25 13:58 | 顯示全部樓層 |閱讀模式
有什么優勢嗎?
回復

使用道具 舉報

ID:675287 發表于 2022-11-25 15:26 | 顯示全部樓層
內置的好像是FLASH,不能像外置EEPROM那樣一個字節的讀寫,只能按塊或扇區操作,寫之前要先擦除塊或扇區,才能寫入
回復

使用道具 舉報

ID:978375 發表于 2022-11-25 15:46 | 顯示全部樓層
zh_junwei 發表于 2022-11-25 15:26
內置的好像是FLASH,不能像外置EEPROM那樣一個字節的讀寫,只能按塊或扇區操作,寫之前要先擦除塊或扇區,才 ...

剛剛了解到很多單片機內置EEPROM是用FLASH模擬的,可能穩定性不如硬件的
回復

使用道具 舉報

ID:1043747 發表于 2022-11-25 17:31 來自手機 | 顯示全部樓層
內置的擦寫壽命短
回復

使用道具 舉報

ID:401564 發表于 2022-11-25 20:31 | 顯示全部樓層
單片機內部的EEPROM是FLASH的,只能塊寫入,一般有EEPROM存儲數據不會每次都存上一個塊的,有時候是單獨改一個地址的數據而已,FLASH不能像24C01那樣操作的
回復

使用道具 舉報

ID:419909 發表于 2022-11-25 21:52 | 顯示全部樓層
應該是不習慣吧。個人覺得內置的EEPROM方便使用。雖然是塊操作,但是需要保存的數據一般也不多。存在一個數組里,每次全部重寫一次就可以了。擦寫壽命這個,官方說明里好像也挺多的。又不是每時每刻要更新。
回復

使用道具 舉報

ID:101869 發表于 2022-11-26 10:11 | 顯示全部樓層
內置EEPROM最大缺點就是存一個數據就要整頁擦除,比如你這一頁有200個數據,修改任何一個數據就要先把這200個保存到緩存,然后擦除,然后再把這200個數據寫入.
回復

使用道具 舉報

ID:997026 發表于 2022-11-26 10:35 來自手機 | 顯示全部樓層
好多人說單片機內置eeprom是flash的完全是誤導,估計都是只用過stc的,用內部flash模擬eeprom大多是國產廠商的做法,因為便宜,我用過microchip的,人家就是真正的eeprom,按字節寫入,不需要擦除,小一些的都沒有頁的概念,直接按地址寫
回復

使用道具 舉報

ID:963918 發表于 2022-11-26 12:21 | 顯示全部樓層
看內置EEPROM是不是真正的EEPROM,如果是FLASH模擬的,就要慎用,在某些時候擦寫會影響到主程序區。
回復

使用道具 舉報

ID:401564 發表于 2022-11-26 12:30 | 顯示全部樓層
hxdby 發表于 2022-11-26 10:35
好多人說單片機內置eeprom是flash的完全是誤導,估計都是只用過stc的,用內部flash模擬eeprom大多是國產廠 ...

但PIC單片機一樣的,有很多電路要外置EEPROM
因為,PIC單片機的EEPROM內存沒幾個是超過1K,有的型號甚至只有256B
回復

使用道具 舉報

ID:996773 發表于 2022-11-26 14:58 | 顯示全部樓層
看使用情況,我是做收音機程序的,寫入數據次數一天內也只有幾次,按字節寫24c02,畢竟多一個元件浪費,后來才用內部eeprom,因為只改動幾個字節的數據,eeprom只能整個扇區寫,我是先把整個扇區全讀到單片機擴展內存,改動幾個字節后再一下子全寫入eeprom,很方便,程序也不復雜,多幾條讀出寫入指令,很穩定,不要聽別人亂講啥的不穩定,但那種一秒鐘就要寫一次的甚至幾十次的還是用外置的片子,內置模擬eeprom肯定扛不住幾天十多萬次的讀寫
回復

使用道具 舉報

ID:624769 發表于 2022-11-26 16:19 | 顯示全部樓層
如果標題是: "論壇里有沒有人在做項目時,明明單片機內部有Eeprom, 但是還外接Eeprom, 請問基于什么原因你還要外接Eeprom"
可能,我會舉幾個實際例子,再說一下理由。

偏偏來個“很多人”,最討厭猜別人的心思。尤其是猜對了沒獎,猜錯了還有噴子。鬼知道“很多人”為什么要外接?有人不會用內部的,有人為了打一塊學習板,有人為了堆料。誰知道?
大多數單片機,內部的Eeprom 也是可以單字節讀寫,并且不需要擦除可以直接修改的,和國內國外沒有關系。
無非論壇里提問題的人多是不說單片機型號,而大部分問問題的人又是用的STC, 才會有了不少人回答問題先入為主用 STC來舉例子。這不是作為認為別人只用過STC的理由或者依據,更不能自己除了 STC沒用過或者學過其他國內的單片機,或者只了解了幾款國內的單片機和幾款國外的單片機,就片面以為 STC 能代表 “大多數國內”的單片機,就片面的認為,國產的單片機才會用 flash 模擬 Eeprom.
撇開成本不談,在都是片內“Eeprom” 的前提下,flash 模擬 Eeprom 是有優勢的,除了擦除比較麻煩,讀/寫 上,flash 模擬的 Eeprom 遠比真實Eeprom要快,尤其是讀上面,所以,對于頻繁讀取,偶爾寫入,這樣的需求,懂得人,會優先選擇flash 模擬 的Eeprom 而不是真實的"Eeprom"。
正因為有不同的需求,會有不同的選擇,所以有不少的單片機,也會同時提供 片內 真實Eeprom 的讀寫,以及片內Flash 的讀寫的 兩種方式,讓程序員按需使用。

撇開實際應用的需要,以偏蓋面的下結論毫無意義。


回復

使用道具 舉報

ID:584814 發表于 2022-11-26 18:48 | 顯示全部樓層
使用習慣且外置的價格可以忽略。
回復

使用道具 舉報

ID:401564 發表于 2022-11-27 12:15 | 顯示全部樓層
188610329 發表于 2022-11-26 16:19
如果標題是: "論壇里有沒有人在做項目時,明明單片機內部有Eeprom, 但是還外接Eeprom, 請問基于什么原因你 ...

如果不算成本
對于頻繁讀寫,真正的應該選外部鐵電EEPROM
鐵電近乎完美,因為不用等待寫入,整體讀寫速度還是很快的
回復

使用道具 舉報

ID:308903 發表于 2022-11-28 08:13 | 顯示全部樓層
能不能延伸討論下,外置咋用
回復

使用道具 舉報

ID:420836 發表于 2022-11-28 08:55 | 顯示全部樓層
單片機內置的EEPROM體積不夠大,設計者習慣于外加EEPROM來擴展存儲空間。
回復

使用道具 舉報

ID:958310 發表于 2022-11-28 09:07 | 顯示全部樓層
片外eeprom是獨立于單片機的,如果軟件要升級把單片機的flash擦了后升級就會把保存的數據清除了。但是獨立的eeprom就不會。
回復

使用道具 舉報

ID:1054345 發表于 2022-11-28 11:29 | 顯示全部樓層
他們最大差異就是:FLASH按塊/扇區進行讀寫操作,EEPROM支持按字節讀寫操作。    其次,容量大小不同:FLASH容量可以做到很大,但EEPROM容量一般都很小。    再次,就是它們的應用場景不同:EERPOM存儲零散小容量數據,比如:標志位、一組數據等。FLASH存儲大容量數據,比如:程序代碼、圖片信息等。    再次,內部結構不同,Flash結構更簡單,成本更低,類似前面和大家分享的《單片機中RAM少的原因》。    當然,還有很多其他區別,但隨著技術的提升,它們二者已經很接近了。以前它們不能滿足的功能,現在基本都能滿足了。
回復

使用道具 舉報

ID:1054345 發表于 2022-11-28 11:36 | 顯示全部樓層
#include "stm32f10x.h"  
#include "string.h"
#include "stdio.h"  
void delay(void);  
void GPIO_Configuration(void);
void uart_init();
extern void USART_OUT(USART_TypeDef* USARTx, uint16_t *Data,...);
void RCC_Configuration(void)  
{  
SystemInit();   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|
RCC_APB2Periph_GPIOA|
RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOD |
RCC_APB2Periph_AFIO|  
RCC_APB2Periph_GPIOC,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
}
void NVIC_Configuration(void)  
{  

  NVIC_InitTypeDef NVIC_InitStructure;   
  
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);      
   
  


  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn|USART2_IRQn;  
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);  


}  




void UART_PutChar(USART_TypeDef* USARTx, uint8_t Data)  
{  
    USART_SendData(USARTx, Data);  
    while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET){}  
}  
void UART_PutStr (USART_TypeDef* USARTx, uint8_t *str)   
{   
    while (0 != *str)   
    {   
        UART_PutChar(USARTx, *str);   
        str++;   
    }   
}




int main(void)  
{  
RCC_Configuration();
GPIO_Configuration();  
NVIC_Configuration();  
uart_init();


while(1)  
  {  
   GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13);  
delay();  
   GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_13);  
   delay();  
   GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_13);
delay();   
   GPIO_SetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13);  
   delay();   

//USART_SendData(USART1, '1');  
UART_PutStr(USART1,(uint8_t*)("234"));
UART_PutStr(USART2,(uint8_t*)("234"));
  }  
}  




void GPIO_Configuration(void)  
{   
  GPIO_InitTypeDef GPIO_InitStructure;   
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_13;     
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;     
GPIO_Init(GPIOC,&GPIO_InitStructure);  


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
   /* Configure USART2 Rx (PA.03) as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_3;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

}  

void uart_init()
{
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;

USART_Init(USART1, &USART_InitStructure);  
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

USART_Init(USART2, &USART_InitStructure);
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART2, USART_IT_TXE, ENABLE);

USART_Cmd(USART1, ENABLE);      
USART_Cmd(USART2, ENABLE);      
}


void USART1_IRQHandler(void)      //′®¿ú1 ÖD¶Ï·tÎñ3ìDò  
{  
static u8 RX_dat[256]={0};static int i;     
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//USART_IT_RXNE£o½óêÕÖD¶Ï  
{   
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
RX_dat[i++]=USART_ReceiveData(USART1);   
   }
if(RX_dat[0]=='{' &&  RX_dat[i-1]=='}')
{
//UART_PutStr(USART2,"fdg");
}
}  
void USART2_IRQHandler(void)      //′®¿ú2 ÖD¶Ï·tÎñ3ìDò  
{  
  unsigned int i;  
   
}  
回復

使用道具 舉報

ID:624769 發表于 2022-11-28 13:57 | 顯示全部樓層
Y_G_G 發表于 2022-11-27 12:15
如果不算成本
對于頻繁讀寫,真正的應該選外部鐵電EEPROM
鐵電近乎完美,因為不用等待寫入,整體讀寫速度 ...

對于頻繁讀來講, 外部不管用什么材料的 Eeprom,受限IO口的速度,就算你用的并口傳輸,發出讀指令,到IO口收到返回數據,速度都比不過 讀片內的速度。
而且,你也說了如果不算成本,所以架空項目去討論,意義真的不大。
回復

使用道具 舉報

ID:401564 發表于 2022-11-28 14:58 | 顯示全部樓層
188610329 發表于 2022-11-28 13:57
對于頻繁讀來講, 外部不管用什么材料的 Eeprom,受限IO口的速度,就算你用的并口傳輸,發出讀指令,到IO ...

我說的是讀寫,不是單純的讀
STC8G的擦除扇區時間為4-6mS,其它型號的也都差不多
FLASH就算只更改一個地址的數據,都得先讀取,保存,再擦除扇區,也就是說,你只更改一個數據,用時也至少是4mS起步
鐵電就是IIC一個起始寫入停止的過程而已
而且,FLASH的壽命比起鐵電來,差太多了
回復

使用道具 舉報

ID:378108 發表于 2022-11-29 23:40 | 顯示全部樓層
用 外接的這幫人,不會用內部的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲免费精品 | 国产在线成人 | 久久久久久免费精品一区二区三区 | 免费国产视频在线观看 | 国产一区二区不卡 | 久久国产精品色av免费观看 | 成年人网站国产 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 粉色午夜视频 | 91视视频在线观看入口直接观看 | 91精品国产99久久 | 狠狠久 | 视频一区二区在线观看 | 欧美日韩国产三级 | 国产特级毛片aaaaaa喷潮 | 久久99视频 | 成人超碰| 久久99深爱久久99精品 | 91免费观看 | 欧美精品一区二区在线观看 | 欧美激情综合网 | 欧美日本韩国一区二区三区 | 国产精品观看 | 精品免费国产视频 | 国产精品视频不卡 | 56pao在线 | av黄色在线播放 | 国产精品日日做人人爱 | 亚洲欧美网站 | 成人欧美一区二区三区在线观看 | 欧美精品一区免费 | 国产黄色在线观看 | 亚洲成人在线免费 | 亚州成人 | 成人av观看| 亚洲少妇综合网 | 成人黄色电影在线观看 | 在线播放亚洲 | 欧美久久久久 | 男女一区二区三区 | 久久国产精品偷 |