高级会员

- 积分
- 579
- 金钱
- 579
- 注册时间
- 2019-8-4
- 在线时间
- 187 小时
|
3金钱
u8 TP_Init(void)// 主函数的接口
{
if(lcddev.id==0X5510) //4.3寸电容触摸屏
{
if(GT9147_Init()==0) //是GT9147
{
tp_dev.scan=GT9147_Scan; //扫描函数指向GT9147触摸屏扫描
}
// else
// {
// OTT2001A_Init();
// tp_dev.scan=OTT2001A_Scan; //扫描函数指向OTT2001A触摸屏扫描
// }
tp_dev.touchtype|=0X80; //电容屏
tp_dev.touchtype|=lcddev.dir&0X01;//横屏还是竖屏
return 0;
}
// else if(lcddev.id==0X1963) //7寸电容触摸屏
// {
// FT5206_Init();
// tp_dev.scan=FT5206_Scan; //扫描函数指向GT9147触摸屏扫描
// tp_dev.touchtype|=0X80; //电容屏
// tp_dev.touchtype|=lcddev.dir&0X01;//横屏还是竖屏
// return 0;
// }
//电阻屏
else
{
GPIO_InitTypeDef GPIO_InitStructure;
//注意,时钟使能之后,对GPIO的操作才有效
//所以上拉之前,必须使能时钟.才能实现真正的上拉输出
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); //使能PB,PF端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; // PB1端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//B1推挽输出
GPIO_SetBits(GPIOB,GPIO_Pin_1);//上拉
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; // PB2端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
GPIO_Init(GPIOB, &GPIO_InitStructure);//B2上拉输入
GPIO_SetBits(GPIOB,GPIO_Pin_2);//上拉
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_9; // F9,PF11端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &GPIO_InitStructure);//PF9,PF11推挽输出
GPIO_SetBits(GPIOF, GPIO_Pin_11|GPIO_Pin_9);//上拉
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // PF10端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
GPIO_Init(GPIOF, &GPIO_InitStructure);//PF10上拉输入
GPIO_SetBits(GPIOF,GPIO_Pin_10);//上拉
TP_Read_XY(&tp_dev.x[0],&tp_dev.y[0]);//第一次读取初始化
AT24CXX_Init(); //初始化24CXX用来存储得到的数据
if(TP_Get_Adjdata())return 0;//已经校准
else //未校准?
{
LCD_Clear(WHITE); //清屏
TP_Adjust(); //屏幕校准
}
TP_Get_Adjdata();
}
return 1;
}
1:红色字体以下的是电阻屏模块,为什么没有对tp_dev.touchtype赋值
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
LCD_Init();
KEY_Init();
tp_dev.init();
POINT_COLOR=RED;//设置字体为红色
// LCD_ShowString(60,50,200,16,16,"ELITE STM32");
// LCD_ShowString(60,70,200,16,16,"TOUCH TEST");
// LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
// LCD_ShowString(60,110,200,16,16,"2015/1/11");
// LCD_ShowString(60,130,200,16,16,"Press KEY0 to Adjust");
if(tp_dev.touchtype!=0XFF)LCD_ShowString(60,130,200,16,16,"Press KEY0 to Adjust");//电阻屏才显示
delay_ms(1500);
Draw_RST();
if(tp_dev.touchtype&0X80)ctp_test(); //电容屏测试
else rtp_test(); //电阻屏测试
}
2:红色字体部分tp_dev.touchtype!=0XFF,那等于0xF0还是电容屏呀,怎么乱搞,最高位1为电容屏,最低为为0是竖屏,麻烦回帖的解释清一点
|
|