本帖最后由 飛饵 于 2020-6-24 20:37 编辑
这屏幕在F103的板子上完全没问题。
换到F407上,问题一堆,之前不是这样的。
1、首先编译器开了O1级以上优化的话,触摸一次后,笔中断一直为高电平,复位没用,只能拔掉电源再上电,读出的AD值只有1025。如果开O0优化就没上述问题。
2、O0优化下,触摸屏横向纵向都有一片区域的AD值一直为2048
用模拟SPI,配置代码:
/*DCLK,PA4*/
GPIO_initstructure.GPIO_Pin = GPIO_Pin_4;
GPIO_initstructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_initstructure.GPIO_OType = GPIO_OType_PP;
// GPIO_initstructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_initstructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIO_initstructure);
/*CS,PA3*/
GPIO_initstructure.GPIO_Pin = GPIO_Pin_3;
GPIO_initstructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_initstructure.GPIO_OType = GPIO_OType_PP;
// GPIO_initstructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_initstructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIO_initstructure);
/*DIN,PA7*/
GPIO_initstructure.GPIO_Pin = GPIO_Pin_7;
GPIO_initstructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_initstructure.GPIO_OType = GPIO_OType_PP;
// GPIO_initstructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_initstructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIO_initstructure);
/*DOUT,PA6;PEN,PA5*/
GPIO_initstructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
GPIO_initstructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_initstructure.GPIO_OType = GPIO_OType_PP;
GPIO_initstructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_initstructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIO_initstructure);
|