用STM32F407硬件SPI读写ADS1256有问题

2019-07-20 03:22发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
学习小空间
1楼-- · 2019-07-21 23:17
272908169@qq.co 发表于 2015-6-30 11:03
**** 作者被禁止或删除 内容自动屏蔽 ****

        SPI_WriteByte(ADS1256_CMD_RDATA);
                delay_ms(3);//加个延时
硬件搬砖师
2楼-- · 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);
关注微信公众号:电子搬砖师
简单的旅行
3楼-- · 2019-07-22 03:31
 精彩回答 2  元偷偷看……
HQing
4楼-- · 2019-07-22 06:38
楼主,ADS1255用模拟SPI收到数据总是读两次才对???????????QQ396295827请教
lwlwlw
5楼-- · 2019-07-22 08:58
 精彩回答 2  元偷偷看……

一周热门 更多>