用STM32F407硬件SPI读写ADS1256有问题

2019-07-20 03:22发布

有谁写过STM32F407读写ADS1256的程序么?
我用硬件SPI驱动ADS1256,读出ADS1256的寄存器的值都是对的。但是设置输入通道后,读出的电压值都不是正确的。
然后我用模拟SPI时序的方法,可以任意切换通道,读出的电压值都是正确的。问题出在哪里呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
硬件搬砖师
2019-07-22 00:56
学习小空间 发表于 2016-12-28 16:17
SPI_WriteByte(ADS1256_CMD_RDATA);
                delay_ms(3);//加个延时

这款芯片的SPI时钟速度不要超过1.92M,数据采样要设置在时钟的第二个边沿,然后SPI读写函数需要加延时。
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);       
SPI_I2S_SendData(SPI2, TxData);
DelayUs(3);
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);
ACK=SPI_I2S_ReceiveData(SPI2);       
DelayUs(3);
关注微信公众号:电子搬砖师

一周热门 更多>