久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC8G1K08單片機(jī)片內(nèi)EEPROM讀寫數(shù)組問題請(qǐng)教
[打印本頁]
作者:
bd5fna
時(shí)間:
2024-5-11 21:00
標(biāo)題:
STC8G1K08單片機(jī)片內(nèi)EEPROM讀寫數(shù)組問題請(qǐng)教
各位大佬幫忙看看,下面的單片機(jī)代碼讀寫操作數(shù)組,讀出來的數(shù)據(jù)是4個(gè)0xff.
#include "STC8.h"
#include "intrins.h"
#include "stdio.h"
/************* 本程序功能說明 **************
對(duì)STC內(nèi)部自帶的EEPROM(FLASH)進(jìn)行讀寫測試。
對(duì)FLASH做扇區(qū)擦除、寫入、讀出的操作。
通過串口打印讀取EEPROM結(jié)果。
注意:下載時(shí),下載界面"硬件選項(xiàng)"中設(shè)置用戶EEPROM大小,
并確保擦除、寫入、讀出的地址在EEPROM設(shè)置的大小范圍之內(nèi)。
下載時(shí), 選擇時(shí)鐘 11.0592MHz (用戶可自行修改頻率)。
******************************************/
#define MAIN_Fosc 11059200L //定義主時(shí)鐘參數(shù)
#define BAUD 115200
#define TM (65536 -(MAIN_Fosc/BAUD/4))
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
/*sfr TH2 = 0xD6;
sfr TL2 = 0xD7;
sfr AUXR = 0x8E;
sfr P_SW2 = 0xBA;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
sfr IAP_DATA = 0xC2;
sfr IAP_ADDRH = 0xC3;
sfr IAP_ADDRL = 0xC4;
sfr IAP_CMD = 0xC5;
sfr IAP_TRIG = 0xC6;
sfr IAP_CONTR = 0xC7;
sfr IAP_TPS = 0xF5;*/
void PrintfInit(void)
{
SCON = (SCON & 0x3f) | 0x40;
AUXR |= 0x40; //定時(shí)器時(shí)鐘1T模式
AUXR &= 0xFE; //串口1選擇定時(shí)器1為波特率發(fā)生器
TL1 = TM;
TH1 = TM>>8;
TR1 = 1; //定時(shí)器1開始計(jì)時(shí)
// SCON = (SCON & 0x3f) | 0x40;
// T2L = TM;
// T2H = TM>>8;
// AUXR |= 0x15; //串口1選擇定時(shí)器2為波特率發(fā)生器
}
void UartPutc(unsigned char dat)
{
SBUF = dat;
while(TI == 0);
TI = 0;
}
char putchar(char c)
{
UartPutc(c);
return c;
}
void IapIdle()
{
IAP_CONTR = 0; //關(guān)閉IAP功能
IAP_CMD = 0; //清除命令寄存器
IAP_TRIG = 0; //清除觸發(fā)寄存器
IAP_ADDRH = 0x80; //將地址設(shè)置到非IAP區(qū)域
IAP_ADDRL = 0;
}
unsigned char IapRead(int addr)
{
char dat;
IAP_CONTR = 0x80; //使能IAP
IAP_CMD = 1; //設(shè)置IAP讀命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_();
dat = IAP_DATA; //讀IAP數(shù)據(jù)
IapIdle(); //關(guān)閉IAP功能
return dat;
}
void IapProgram(int addr, unsigned char dat)
{
IAP_CONTR = 0x80; //使能IAP
IAP_CMD = 2; //設(shè)置IAP寫命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_DATA = dat; //寫IAP數(shù)據(jù)
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_();
IapIdle(); //關(guān)閉IAP功能
}
void IapErase(int addr)
{
IAP_CONTR = 0x80; //使能IAP
IAP_CMD = 3; //設(shè)置IAP擦除命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_(); //
IapIdle(); //關(guān)閉IAP功能
}
void main()
{
unsigned char i;
unsigned char a[4]={1,2,3,4};
P0M1 = 0; P0M0 = 0; //設(shè)置為準(zhǔn)雙向口
P1M1 = 0; P1M0 = 0; //設(shè)置為準(zhǔn)雙向口
P2M1 = 0; P2M0 = 0; //設(shè)置為準(zhǔn)雙向口
P3M1 = 0; P3M0 = 0; //設(shè)置為準(zhǔn)雙向口
P4M1 = 0; P4M0 = 0; //設(shè)置為準(zhǔn)雙向口
P5M1 = 0; P5M0 = 0; //設(shè)置為準(zhǔn)雙向口
IAP_TPS = 11; //設(shè)置EEPROM操作等待參數(shù)(11.0592MHz),初始化設(shè)置一次即可
PrintfInit();
printf("Read1="); //讀取EEPROM原先的內(nèi)容
for(i=0;i<4;i++)
{
a[i] = IapRead(0x0000);
printf("0x%02bx ",a[i]);
//if(a[i] == 0xff) a[i] = i; //如果內(nèi)容為空,則寫入初始化數(shù)據(jù)
//else a[i]++; //如果內(nèi)容非空,在原先基礎(chǔ)上加1
}
printf("\r\n");
IapErase(0x0000);
printf("Read2="); //擦除、重寫后,讀取EEPROM現(xiàn)在的內(nèi)容
for(i=0;i<4;i++)
{
IapProgram(0x0000+i,a[i]);
a[i] = IapRead(0x0000);
printf("0x%02bx ",a[i]);
}
printf("\r\n");
while (1);
}
復(fù)制代碼
作者:
bd5fna
時(shí)間:
2024-5-12 20:38
已搞定:
printf("Read1="); //讀取EEPROM原先的內(nèi)容
for(i=0;i<4;i++)
{
a[4] = IapRead(0x0000+i);
printf("0x%02bx ",a[4]);
//if(a
== 0xff) a[ i] = i; //如果內(nèi)容為空,則寫入初始化數(shù)據(jù)
//else a[ i]++; //如果內(nèi)容非空,在原先基礎(chǔ)上加1
}
printf("\r\n");
IapErase(0x0000);
printf("Read2="); //擦除、重寫后,讀取EEPROM現(xiàn)在的內(nèi)容
for(i=0;i<4;i++)
{
IapProgram(0x0000+i,a[ i]);
a[4] = IapRead(0x0000+i);
printf("0x%02bx ",a[4]);
}
printf("\r\n");
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
九九爱这里只有精品
|
特黄毛片视频
|
超碰人人人
|
亚洲午夜精品一区二区三区
|
国产精品 欧美精品
|
精品免费观看
|
国产亚洲一区精品
|
亚洲精品乱码久久久久久蜜桃91
|
国产精品视频播放
|
免费一看一级毛片
|
色站综合
|
久久久精品一区二区三区
|
国产aⅴ爽av久久久久久久
|
日韩精品极品视频在线观看免费
|
欧产日产国产精品视频
|
精品国产精品国产偷麻豆
|
九九天堂网
|
四虎永久免费影院
|
综合网伊人
|
蜜桃精品视频在线
|
国内自拍视频在线观看
|
成人a视频片观看免费
|
欧美精品久久久
|
国产精品福利在线观看
|
中文字幕高清
|
综合精品
|
精品久久久久久亚洲精品
|
www.五月天婷婷
|
欧美成人免费在线视频
|
国产高潮av
|
国产欧美日韩在线观看
|
在线91
|
欧美综合在线观看
|
日韩免费高清视频
|
宅男伊人
|
av免费网
|
国产精品久久久久久久久久久免费看
|
国产无人区一区二区三区
|
在线免费观看成年人视频
|
天天玩夜夜操
|
国产99视频精品免视看9
|