本帖最后由 飛饵 于 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);
|