以前写过STM32F103ZET6驱动ADS8332的代码,不过是使用IO模拟SPI驱动的,在本博客前面可以查询。今天在STE_V2.1验证平台上编写了STM32F429BIT6驱动ADS8332的代码,本次使用了STM32F4的硬件SPI,使用SPI2。代码亲自测试,效果不错。鉴于在网上看到很多人在找STM32硬件SPI驱动ADS8332,在此贴出代码工大家参考。
/**
* 函数功能:采集待测芯片电流取样电阻处理后的电压的ADS8332复位
* 输入参数:无
* 输出参数:无
* 全局变量:无
* 作者:LuJ
* 修改日期:2015/09/02
* 备注:无
*/
void DUT_Power_ADS8332_Reset(void)
{
ADS8332_POWER_SCK_OUT=0;
ADS8332_POWER_CS_OUT=1;//CS=1
ADS8332_POWER_MOSI_OUT=1;
ADS8332_POWER_CONVST_OUT=1;
ADS8332_POWER_RESET_OUT=1;
Delay_us(100);
ADS8332_POWER_RESET_OUT=0;//minimum 25ns
Delay_us(100);
ADS8332_POWER_RESET_OUT=1;//minimum 2us
Delay_us(100);
}
/**
* 函数功能:采集待测芯片电流取样电阻处理后的电压的ADS8332模数转换器开始转换
* 输入参数:无
* 输出参数:无
* 全局变量:无
* 作者:LuJ
* 修改日期:2015/09/02
* 备注:CONVST信号下降沿开始采集
*/
void DUT_Power_ADS8332_Convst(void)
{
ADS8332_POWER_CS_OUT=1;//CS=1
ADS8332_POWER_CONVST_OUT=1;
Delay_us(100);
ADS8332_POWER_CONVST_OUT=0;//minimum 40ns
Delay_us(100);
ADS8332_POWER_CONVST_OUT=1;
}
/**
* 函数功能:采集待测芯片电流取样电阻处理后的电压的ADS8332模数转换器读配置信息
* 输入参数:无
* 输出参数:读取配置数据
* 全局变量:无
* 作者:LuJ
* 修改日期:2015/09/02
* 备注:下降沿,D15:12 1100b D11:D0 Don't care
*/
uint16_t DUT_Power_ADS8332_ReadCFR(void)
{
uint16_t temp_a = ADS8332_READ_CFR;
uint16_t ConFR = 0x0000;
ADS8332_POWER_CS_OUT=0;//CS=0
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TX