找到问题所在,原因是我用的是SPI模式,速度太快,要加上红色那句把SPI速度放慢,还是不明白什么原因,还有就算SPI 256分频了,画出来的线还是有断续,要很慢的画才行,难道不能用SPI硬件驱动?
u16 ADS_Read_AD(u8 CMD)
{
u8 byte = 0;
u16 Num = 0;
XPT2046_CS = 0; //选中ADS7843
ADS_Write_Byte(CMD);//发送命令字
delay_us(6);//ADS7846的转换时间最长为6us
SPIx_SetSpeed(SPI_SPEED_256); //SPI需要低速
byte = SPIx_ReadWriteByte(0XFF); //读取一个字节
Num = byte;
byte = SPIx_ReadWriteByte(0XFF); //读取一个字节
Num = (Num << 8) + byte;
Num >>= 4; //只有高12位有效.
XPT2046_CS = 1;//释放ADS7843
SPIx_SetSpeed(SPI_SPEED_8); //8分频速度
return(Num);
}
|