- 打卡等级:初来乍到
- 打卡总天数:6
- 最近打卡:2024-11-14 08:37:29
注册会员
- 积分
- 61
|
本帖最后由 DebugLab 于 2024-8-22 14:53 编辑
硬件32G12K128代码如下
#include "config.h"
#include "STC32G_GPIO.h"
#include "STC32G_UART.h"
#include "STC32G_NVIC.h"
#include "STC32G_Delay.h"
#include "STC32G_Switch.h"
#include "STC32G_EEPROM.h"
void UartPutc(unsigned char dat)
{
SBUF = dat;
while(TI==0);
TI = 0;
}
char putchar(char c)
{
UartPutc(c);
return c;
}
/******************* IO配置函数 *******************/
void GPIO_config(void)
{
P0M0 = 0x00; P0M1 = 0x00;
P1M0 = 0x00; P1M1 = 0x00;
P2M0 = 0x00; P2M1 = 0x00;
P3M0 = 0x00; P3M1 = 0x00;
P4M0 = 0x00; P4M1 = 0x00;
P5M0 = 0x00; P5M1 = 0x00;
P6M0 = 0x00; P6M1 = 0x00;
P7M0 = 0x00; P7M1 = 0x00;
}
void Uart1_Init(void) //115200bps@22.1184MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器时钟1T模式
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设置定时器模式
TL1 = 0xD0; //设置定时初始值
TH1 = 0xFF; //设置定时初始值
ET1 = 0; //禁止定时器中断
TR1 = 1; //定时器1开始计时
}
/**********************************************/
void main(void)
{
u8 i,Temp;
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXSFR(); //扩展SFR(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
GPIO_config();
Uart1_Init();
EA = 1;
delay_ms(1000);
printf("this is a test program\r\n");
while (1)
{
for(i=0;i<2;i++)
{
EEPROM_read_n(i,&Temp,1);
printf("before write read 0x%04bX Data=%02bX\r\n",i,Temp);
}
delay_ms(1000);
printf("begin write \r\n");
for(i=0;i<2;i++)
{
Temp = i;
EEPROM_write_n(i,&Temp,1);
}
delay_ms(1000);
printf("write over \r\n");
for(i=0;i<2;i++)
{
EEPROM_read_n(i,&Temp,1);
printf("after write read 0x%04bX Data=%02bX\r\n",i,Temp);
}
delay_ms(1000);
}
}
输出结果如下,为啥数据没有保存成功呢
[14:09:39.633]接收←before write read 0x0000 Data=00
before write read 0x0001 Data=00
[14:09:40.633]接收←begin write
[14:09:41.631]接收←write over
after write read 0x0000 Data=00
after write read 0x0001 Data=00
|
|