原代码段

#define WaitDRDY  while((GPIO_ReadInputDataBit(GPIO_ADS1256DRDY_PORT,GPIO_ADS1256DRDY))){;}

//一旦ADS1256出现死机,会出现DRDY低电平高不到,从而陷入死循环。建议更改下面的有限循环代码段

void WaitDRDY_Process(void)
{
while((GPIO_ReadInputDataBit(GPIO_ADS1256DRDY_PORT,GPIO_ADS1256DRDY)))
  {
WaitDRDYcount++;
 if(WaitDRDYcount>0xfdd)
{
WaitDRDYcount=0;
break;
}
}
WaitDRDYcount=0;
}
读取ADS1256某一通道数据代码
long double tRDATA(unsigned char channel)
{
static u32 stsum=0,ch;
ch=((channel << 4) | ADS1256_MUXN_AINCOM);
stsum=0;
CS_ADS1256;//片选
//WaitDRDY;//用下面代码代替
WaitDRDY_Process();
ADS1256WREG(ADS1256_MUX,ch);//通道选择
ADS1256_Delay_us(5);
ADS1256WCMD(ADS1256_CMD_SYNC); //0xfc 心跳
ADS1256_Delay_us(5);
ADS1256WCMD(ADS1256_CMD_WAKEUP); //0x00 唤醒
stsum=ADS1256ReadData();
ADS1256_Delay_us(10);
deCS_ADS1256;
return int_longdouble(stsum);
}
问题:
ADS1256在控制器驱动执行机构时,可能会引入有线传导干扰,出现 WaitDRDY 或  WaitDRDY_Process(void) 读取不到高电平,导致进入死循环。
从而导致ADS1256读取到的数据为异常值,全111111111/22222222、fffffffff之类的。
分析: WaitDRDY 或  WaitDRDY_Process(void) 读取不到高电平,说明此时ADS1256数据不可用。读出来的数据非常大是正常的。
       此时应该中止继续读取ADS1256的值,直接return跳出。

建议 程序更改:

u8 WaitDRDY_Process(void)
{
while((GPIO_ReadInputDataBit(GPIO_ADS1256DRDY_PORT,GPIO_ADS1256DRDY)))
       {
WaitDRDYcount++;
       if(WaitDRDYcount>0xfdd)
{
WaitDRDYcount=0;
return 1;
}
}
WaitDRDYcount=0;
        return 0;
}

long double tRDATA(unsigned char channel)
{
static u32 stsum=0,ch;
        u8 ret=0;
ch=((channel << 4) | ADS1256_MUXN_AINCOM);
stsum=0;
CS_ADS1256;
//WaitDRDY;
ret=WaitDRDY_Process();//读取不到低电平,直接返回1,否则返回0
        if(ret)  
       {
        deCS_ADS1256;
        return;
        }
        else
{
        ADS1256WREG(ADS1256_MUX,ch);
ADS1256_Delay_us(5);
ADS1256WCMD(ADS1256_CMD_SYNC); //0xfc
ADS1256_Delay_us(5);
ADS1256WCMD(ADS1256_CMD_WAKEUP); //0x00
stsum=ADS1256ReadData();
ADS1256_Delay_us(10);
deCS_ADS1256;
return int_longdouble(stsum);
        }
}

stm32F407控制器在驱动电机等执行机构时,ADS1256采集模块出现死机现象,问题待解决相关推荐

  1. RT-Thread:在dfs中使用cat、cp等命令时拔掉U盘死机问题

    一.问题现象 1.使用ls.cp.mv.cat.rm.mkdir.echo命令操作文件未结束之前拔掉U盘,自己写的自动卸载U盘程序会出现死机现象. 二.问题原因 1.每次进行文件操作需要用到互斥锁的, ...

  2. 解决电脑一休眠时就黑屏死机

    一般在Appdata下存储着用户使用电脑留下的信息,我在减轻C盘存储压力时,就主要减少该目录下的不需要的东西,可是不小心删除了某个文件,导致电脑一进入休眠状态就死机,可以用以下方法解决. 先进入BIO ...

  3. 计算机硬盘磁道损坏有什么症状,计算机硬盘扇区损坏,读取数据时出现死机现象的解决方法...

    长时间使用计算机硬盘时,许多用户遇到了坏扇区,这将大大降低硬盘的使用寿命. 读取坏扇区数据时,在严重的情况下会冻结甚至崩溃. 如果计算机的硬盘上有坏道,则必须修复逻辑坏道. 如何修复计算机硬盘上的坏道 ...

  4. 服务器一拷贝文件就死机,u盘拷贝文件时导致电脑死机怎么办【解决方法】

    使用u盘存储.拷贝文件在我们的日常工作生活中已是很常用的移动存储设备,而随着技术的发展,大容量u盘也随之而来,而使用 u盘拷贝文件导致死机 也是我们会遇到的问题,那么遇到这种 u盘导致电脑死机 的问题 ...

  5. 调试: Rose逆向工程时死机.

    google key words: "rose" "逆向" "死机" 现象描述: 工程完成了,现在要写文档, 准备先用Rose2003逆向生 ...

  6. 分区的时候 计算机管理未响应,解决使用PartitionMagic调整硬盘分区时电脑死机的方法...

    解决使用PartitionMagic调整硬盘分区时电脑死机的方法 如何解决使用PartitionMagic调整硬盘分区时电脑死机呢?有什么解决方法呢?下面十二个步骤就是在进行"易我分区表医生 ...

  7. thinkphp的控制器包含在Url中时注意区分大小写

    thinkphp的控制器包含在Url中时要区分大小写. 转载于:https://www.cnblogs.com/npk19195global/p/4531961.html

  8. abb机器人指令手册_ABB机器人控制器死机故障维修

    ABB机器人控制器死机故障维修描述:今天早上刚到公司,就接到日照客户电话其生产使用的ABB机器人IRC5控制器出现了死机故障,其主要的故障现象是没有指示灯亮起而且无法进行任何的操作,控制器死机直接导致 ...

  9. shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决

    shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决 from :http://blog.csdn.net/babys/article/ ...

  10. ad hoc是什么的简称_签名后的App安装时出现安装失败是什么原因?如何解决?

    相信了解过ios签名的朋友都知道,ios签名可以对App添加信任,使其能够绕过App Store的审核直接安装到ios设备上.但是有时我们在使用过程中会发现,签名后的App在安装时会出现安装失败的情况 ...

最新文章

  1. 如何去除C#Strings中的空格?
  2. 低版本eclipse导入高版本eclipse创建项目报错问题
  3. 工作172:自己工作开始封装的一个小组件
  4. LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)
  5. C#.net实现密码加密算法的语句
  6. java excel 电话号码_数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取...
  7. Java 读取Oracle数据库中的Date日期型怎么去掉秒后面的0
  8. 给 Python 添加进度条 | 给小白的 tqdm 精炼实例!
  9. Qos拥塞避免原理与实验
  10. apk反编译 Android apktool下载 dex2jar下载 jd-gui下载
  11. vue 定位所在地_记录 vue 实现Web端的定位功能 获取经纬度
  12. 约束,修改表结构,添加删除约束
  13. Python中用于身份证验证的库函数
  14. YOLOX代码 loss计算过程 详细注释版
  15. 香橙派 One Plus 像单片机一样硬件寄存器 控制GPIO 点灯
  16. 在网上看到一篇很让人心水的三行情书,由此引发的种种
  17. python中iter_深入了解Python iter() 方法的用法
  18. Dev-C++5.11游戏创作之火柴人跑酷
  19. matlab出图时汉字都变成方框,linux下Matlab 2020中文字体方框问题解决方法
  20. 通过编程求解炉石传说酒馆战旗最佳血量和攻击力分配方式

热门文章

  1. 离了加多宝 第三季好声音将“变味”
  2. 苹果计算机访问限制,苹果手机访问限制密码忘了怎么办
  3. 三星s8怎么分屏操作_三星Galaxy Z Fold2帮你应对快节奏生活
  4. nodejs安装时遇到的问题及解决方案
  5. XXL-JOB任务调度
  6. python负数的表示方法_负整数的Python表示
  7. 上海证券综合指数昨天成功击破1000点
  8. 用js处理图片加载错误时加载默认图片的方法
  9. angular 访问图片路径错误
  10. 【转载】Linux摄像头驱动1——vivid