初级会员

- 积分
- 106
- 金钱
- 106
- 注册时间
- 2014-2-14
- 在线时间
- 23 小时
|
如题,对AD5628模数转换操作,我采取两种不同的方法:1、直接操作芯片时序;2、利用STM32F103自带的SPI1接口(AD5628支持SPI总线接口)操作AD芯片。两种方式都可以正常工作,现在出现的问题是:利用SPI1接口感觉芯片的速度要慢很多,而利用STM32的IO直接操作芯片时序的速度快。下面是SPI1的配置
SPI_InitStructure.SPI_Direction=SPI_Direction_1Line_Tx;
SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL=SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;//
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;//
SPI_InitStructure.SPI_CRCPolynomial=7;//
SPI_Init(SPI1,&SPI_InitStructure);//
SPI_Cmd(SPI1,ENABLE);//
}
void SPI_WriteData(uint8_t *data,uint8_t byteNumber)//
{
uint8_t byte=0;
SYNC_LOW;
for(byte=0;byte<byteNumber;byte++)
{
SPI1->DR=data[byte];//
SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE);//
}
SYNC_HIGH;
}
|
|