/** * @brief: 触摸屏初始化 * @retval:0 - 没有进行校准 * 1 - 进行过校准 * @note: * - T_SCK -> PB1 * - T_CS -> PB2 * - T_MISO -> PF8 * - T_MOSI -> PF9 * - T_PEN -> PF10 */ u8 TP_Init(void) { RCC->APB2ENR|=1<<3; //PB时钟使能 RCC->APB2ENR|=1<<7; //PF时钟使能 GPIOB->CRL&=0XFFFFF00F; //PB1 PB2 GPIOB->CRL|=0X00000330; GPIOB->ODR|=3<<1; //PB1 PB2 推挽输出 GPIOF->CRH&=0XFFFFF000; GPIOF->CRH|=0X00000838; //PF8-上拉输入 PF9-推挽输出 PF10-上拉输入 GPIOF->ODR|=7<<8; //PF8 PF9 PF10 全部上拉 TP_Read_XY(&tp_dev.x,&tp_dev.y);//第一次读取初始化 IIC_Init(); //初始化IIC while(AT24CXX_Check()) //检测不到24c02 { LCD_ShowString(16,150,200,16,16,"24C02 Check Failed!"); delay_ms(500); LCD_ShowString(16,150,200,16,16,"Please Check! "); delay_ms(500); } if(TP_Get_Adjdata())return 0; //已经校准 else //未校准 { LCD_Clear(WHITE); //清屏 TP_Adjust(); //屏幕校准 TP_Save_Adjdata(); } TP_Get_Adjdata(); return 1; }
int main(void) { u8 key; u16 i=0; u8 datatemp[SIZE]; SystemInit(); delay_init(72); //延时初始化 NVIC_Configuration(); uart_init(9600); LED_Init(); KEY_Init(); LCD_Init(); AT24CXX_Init(); //IIC初始化 POINT_COLOR=RED;//设置字体为蓝色 LCD_ShowString(60,50,"Mini STM32"); LCD_ShowString(60,70,"IIC TEST"); LCD_ShowString(60,90,"ATOM@ALIENTEK"); LCD_ShowString(60,110,"2011/1/1"); while(AT24CXX_Check())//检测不到24c02 { LCD_ShowString(60,130,"24C02 Check Failed!"); delay_ms(500); LCD_ShowString(60,130,"Please Check! "); delay_ms(500); LED0=!LED0;//DS0闪烁 } LCD_ShowString(60,130,"24C02 Ready!"); //显示提示信息 LCD_ShowString(60,150,"KEY0:Write KEY2(WK_UP):Read"); POINT_COLOR=BLUE;//设置字体为蓝色 while(1) { key=KEY_Scan(); if(key==1)//KEY0按下,写入24C02 { LCD_Fill(0,170,239,319,WHITE);//清除半屏 LCD_ShowString(60,170,"Start Write 24C02...."); AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE); LCD_ShowString(60,170,"24C02 Write Finished!");//提示传送完成 } if(key==3)//KEY_UP按下,读取字符串并显示 { LCD_ShowString(60,170,"Start Read 24C02.... "); AT24CXX_Read(0,datatemp,SIZE); LCD_ShowString(60,170,"The Data Readed Is: ");//提示传送完成 LCD_ShowString(60,190,datatemp);//显示读到的字符串 } i++; delay_ms(10); if(i==20) { LED0=!LED0;//提示系统正在运行 i=0; } } }