STM32通过SPI与TSC2046相连采集触摸屏上的数据,在STM8上SPI通信一切正常。
但是转到 STM32就出错了。
采集的数据总是 不正确。
SPI_InitTypeDef SPI_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
SPI_Cmd(SPI2, DISABLE);//必须先禁能,才能改变MODE
SPI_InitStructure.SPI_Direction =SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode =SPI_Mode_Master;//主
SPI_InitStructure.SPI_DataSize =SPI_DataSize_8b;//8位
SPI_InitStructure.SPI_CPOL =SPI_CPOL_Low;//CPOL=1时钟悬空高
SPI_InitStructure.SPI_CPHA =SPI_CPHA_1Edge;//CPHA=1 数据捕获第2个
SPI_InitStructure.SPI_NSS =SPI_NSS_Soft;//软件NSS
SPI_InitStructure.SPI_BaudRatePrescaler =SPI_BaudRatePrescaler_2; SPI_InitStructure.SPI_FirstBit =SPI_FirstBit_MSB;//高位在前
SPI_Init(SPI2,&SPI_InitStructure);
SPI_Cmd(SPI2, ENABLE);
这是 STM32 初始化。
在采集 TSC2046 X轴的数据时,STM32的MOSI引脚发出的数据是 0xd0。
得到的数据总是不正常,STM8上移植的却OK。 |