用AD7195做磅秤应用,注意不是直接用它的Evalua
tion Board 而是把评估板上的AD7195接到我自己的MCU上。 然后对MCU写程序 对AD7195的配置如图
也就是程序中按图中Mode 和Configuration 寄存器的值写入的。程序在debug状态下与AD7195的Evaluation Board上的显示值一致,如下图
watch1里面的temp值就是取的ad7195 data register 中的前16位组成的数,只是显示为十进制,按压应力片的同时,然后run 程序,可以看到temp值会相应增大,且数据正确。但是一旦把采集的数据上传到上位机软件来显示。就发现数据乱跳,完全与我自己用run来debug时得到的数据不一致。
已知的是MCU与上位机通道
通信正常,显示也正常,这是因为我下位机发送一个任意固定值时(如图中注释了的temp=10000),上位机软件都能正确显示。
分析可能的原因是因为我每次debug按一次run然后停到断点时,也就是只读了一次AD7195,即使手不停按run频率也是比较小的,而让退出debug模式让MCU不停运行时,对AD7195的读就相当频繁了。导致同步丢失,从而数据丢掉。
(但是失去同步的可能性应该是不高的把,因为我在多次读操作的中间都把DIN脚拉高了,防止DIN线上无效跳动的干扰了,而且在程序中也加入了如遇数据异常执行reset复位操作,然后重新读的功能)
静等高手解答!!!!!!!!!!!!!!!谢谢!