昨天提到卖家的TFT的触摸和SD是共用SPI数据口的,研究了一天终于把硬件SPI驱动驱动弄好了,感谢下电子白菜,对于原子说的中断会干扰到数据传送我做了个保护。现在触摸MP3正常使用
这里就给出TOUCH的程序吧
u16 ADS_Read_AD(u8 CMD)
{ u16 i,ii;
u16 count=0;
u16 Num=0;
ii=SPI1->CR1;
// SPI1->CR1&=0XFFC7;//Fsck=Fcpu/256
// SPI1->CR1|=3<<3;//Fsck=Fpclk/2=36Mhz
// SPI1->CR1|=1<<6; //SPI设备使能
SPI1->CR1=863; //这一句和上面注释的实现一个功能的。才用16分频 再快就不行了
i=GPIOA->IDR; //记录A口的状态以便恢复
GPIOA->BSRR=1<<3; //这里是SD卡的片选端
GPIOA->BSRR=1<<8; //这里是MP3的片选端 根据使用到SPI硬件进行设置
TCS=0; //选中ADS7843
delay_us(3);
SPIx_ReadWriteByte(CMD);
delay_us(3);
count=SPIx_ReadWriteByte(0);
count=count<<8;
count|=SPIx_ReadWriteByte(0);
count>>=3;
Num=count;
GPIOA->ODR=i;
SPI1->CR1=ii;
TCS=1;//释放ADS7843
return(Num);
}
主要就是这个函数改一下 初始化再进行配置下
GPIOC->CRL&=0XFFFFFF00;//PC0~3
GPIOC->CRL|=0X0000FF83;
GPIOC->ODR|=0X03; //PC0~3 13 全部上拉    C0为触摸片选端。
感谢原子的程序,才能这样神速完成。
|