http://www.openedv.com/posts/list/32958.htm
有谁把这位大神的程序移植到mini板上成功了吗?往24C02里写数据写不进去该怎么解决?
主程序代码:
[mw_shl_code=c,true]int main(void)
{
u8 i;
// u8 timer=0;
/*************
各种初始化
*************/
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
Timerx_Init(5000,7200-1);//定时器3初始化,定时500ms(在定时器中断服务程序中,LED1闪烁指示程序正在运行)
LED_Init(); //LED初始化
AT24CXX_Init(); //IIC初始化(存储:姓名、性别、卡号、余额)
SPI_Flash_Init(); //SPI FLASH初始化(中文字库)
LCD_Init(); //LCD初始化
Touch_Init(); //触摸初始化(这里初始化了,在后面的触摸函数里面就不要初始化了,屏幕的切换显示会有冲突的)
RTC_Init(); //实时时钟初始化
// RTC_Set(2015,6,9,12,12,12);//设置时间,只需设置一次就要屏蔽此函数
Auto_Time_Set();
DS18B20_Init(); //数字温度传感器DS18B20初始化
InitAlldata(); //初始化所有读卡相关数据的设置
//AT24C02初始化(0-255个u8类型(8位二进制数)的数据)
//因为触摸屏要保存校准参数,占用13个字节,所以可用的就剩下243个字节了,最多可以存20张卡的卡号和密码
//(每张卡需11个字节:卡号4个字节,卡的状态1个字节,密码6个字节)
while(AT24CXX_Check())//检测不到AT24C02
{
LCD_ShowString(60,130,"24C02 Check Failed!");
delay_ms(500);
LCD_ShowString(60,130,"Please Check! ");
delay_ms(500);
LED0=!LED0;
}
// //AT24C02清零
// for(timer=0;timer<240;timer++)
// AT24CXX_Write(timer,(u8*)TEXT_Buffer,SIZE); //写0到地址timer
// while(1);
//W25X16初始化
//要执行Font_Init();才能现显示汉字
if(Font_Init()) //字库不存在,则更新字库
{
POINT_COLOR=RED;
LCD_Clear(WHITE);
LCD_ShowString(60,50,"Mini STM32");
LCD_ShowString(60,70,"Font Updating...");
//字体更新
SD_Initialize(); //初始化SD卡
while(FAT_Init()) //FAT 错误
{
LCD_ShowString(60,90,"FAT SYS ERROR");
i= SD_Initialize();
if(i)//SD卡初始化
{
LCD_ShowString(60,110,"SD_CARD ERROR");
}
delay_ms(500);
LCD_Fill(60,90,240,126,WHITE);//清除显示
delay_ms(500);
LED0=!LED0;
}
LCD_Fill(60,90,240,126,WHITE);//清除显示
while(Update_Font()!=0)//字体更新出错
{
LCD_ShowString(60,90,"SYSTEM FILE LOST");
delay_ms(500);
LCD_ShowString(60,90,"Please Check....");
delay_ms(500);
LED0=!LED0;
};
LCD_Clear(WHITE);
}
// //触摸屏屏幕校准
LCD_Clear(WHITE);//清屏
Touch_Adjust(); //屏幕校准
Save_Adjdata();
//RC522射频卡模块初始化,必须放在操作界面之后初始化才能正常读卡
InitRc522();
while(1)
{
TOUCH_GUI_DISP_MENU();
}
}
[/mw_shl_code]
|