//外部中断初始化函数
void Touch_Init(void)
{
/* Mini32 自制
Mosi  C3   A7 3 L
Miso  C2 PA6 8 L
Sck   C0 PA5 3 L
TCs   C13   A4 3 H
TInt  C1 PC13 8 L */
RCC->APB2ENR|=1<<2; //PA时钟使能
RCC->APB2ENR|=1<<0; //开启辅助时钟
GPIOA->CRL&=0X000FFFFF; //PA5~7
GPIOA->CRH&=0XFFF0FFFF; //PC4
GPIOA->CRL|=0X38300000; //PA5~7
GPIOA->CRH|=0X00030000; //PC4推挽输出
GPIOA->ODR|=0XF0;
RCC->APB2ENR|=1<<4; //PC时钟使能
GPIOC->CRL&=0XFF0FFFFF;//PC13
GPIOC->CRL|=0X00300000;//PC13推挽输出 <----这里的3改成8后屏幕就没有显示了
GPIOC->ODR|=0X2000;
//GPIOC->ODR|=1<<13;
Read_ADS(& en_Point.X,& en_Point.Y);//第一次读取初始化
MY_NVIC_Init(2,0,EXTI1_IRQChannel,2);
Ex_NVIC_Config(GPIO_C,13,FTIR);//将line1映射到PC.1,下降沿触发.
printf(" X:%x\n",Pen_Point.X); //打印LCD ID
printf(" Y:%x\n",Pen_Point.Y); //打印LCD ID
X:179
Y:1d8
为什么开机的时候需要先按着屏幕才能有值输出,并且只有第一次初始化的时候才能读出值来?
屏幕没有显示是不是与这句有关系呢?
#define DATAOUT(tempdata) {\
GPIOB->ODR=((GPIOB->ODR&0X00FF)|(tempdata&0xFF00));\
GPIOC->ODR=((GPIOC->ODR&0XFF00)|(tempdata&0x00FF));\
} //数据输出
请帮忙给解释下吧各位!
|