STM32调试ADS1256模块,初始化失败,DRDY一直为高电平,有木有谁调过的,给点建议,万分感谢!!!

硬件小白10086号 2016-03-11 10:00:09
ADS1256用的是网上买的轩微电子的一个模块,附上我的初始化程序,劳烦各位大神看一下。

void ADS1256_Init(void)
{
ADS_CS_LOW();
RESET_HIGH();
DelayuS(100);
SPI_SendByte(ADS1256_CMD_REST);
DelaymS(10);
while(ADS_DRDY) //当ADS1256_DRDY为低时才能写寄存器
{
printf("\r\n ADS1256 Initialization Failed !! \r\n");
}
SPI_SendByte(ADS1256_CMD_SYNC); //同步命令
SPI_SendByte(ADS1256_CMD_WAKEUP); //同步唤醒

while(ADS_DRDY)
{
printf("\r\n ADS1256 Initialization Failed !! \r\n");
}
SPI_SendByte(ADS1256_CMD_WREG | ADS1256_STATUS);//连续写入4个寄存器
SPI_SendByte(3);
SPI_SendByte(0x04); //高位在前,使用内部校准,不使用缓存
SPI_SendByte(ADS1256_MUXP_AIN2 | ADS1256_MUXN_AIN3);//端口输入A2为正,A3位负
SPI_SendByte(ADS1256_GAIN_1); //放大倍数设置
SPI_SendByte(ADS1256_DRATE_2_5SPS); //采集速度设置
DelayuS(100);

while(ADS_DRDY) //当ADS1256_DRDY为低时才能写寄存器
{
printf("\r\n ADS1256 Initialization Failed !! \r\n");

}
SPI_SendByte(ADS1256_CMD_SELFCAL); //偏移和增益自动校准

ADS_CS_HIGH();
DelaymS(100);

}
...全文
3907 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinesun123123 2019-10-14
  • 打赏
  • 举报
回复
配置寄存器的时候start引脚要保持高电平?你这里好像没有配置START引脚。
灭世轻语 2019-09-20
  • 打赏
  • 举报
回复 1
硬件SPI的话,是不是SPI初始化DRDY管脚时,其GPIO模式改为上拉输入了,这个模式下,电平一直为高电平的,可以设置成推挽输出模式;
atidat 2016-10-31
  • 打赏
  • 举报
回复
楼主,你的程序能分享一下吗?我想借鉴一下。
ZHZ26 2016-09-26
  • 打赏
  • 举报
回复
我也是用模拟SPI一直调不通,请问程序可以共享不?
  • 打赏
  • 举报
回复
不好意思,这几天忙去了,这个问题已经解决了,后来换了软件模拟SPI的方式读取的,另外DRDY引脚是ADS1256反馈给单片机的只读信号
woshi_ziyu 2016-03-18
  • 打赏
  • 举报
回复
ADS_DRDY能设置成低电平么?
xushun716 2016-03-18
  • 打赏
  • 举报
回复
具体没用过芯片,reset_high接的是start引脚试试
  • 打赏
  • 举报
回复
走过路过,麻烦看一看

27,508

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧