标题: STM32驱动ADS1256为什么串口接收不到数据 [打印本页]

作者: yhx'    时间: 2021-7-24 15:40
标题: STM32驱动ADS1256为什么串口接收不到数据
主函数代码如下
int main(void)
{
        unsigned char i=0;
        long ulResult;
         double ldVolutage;//long

        Init_UART1(115200);

        Init_ADS1256_GPIO(); //初始化ADS1256 GPIO管脚

        Delay(0x1ffFF);
        GPIO_SetBits(GPIOB, GPIO_Pin_11 );  
                ADS1256_Init();

        while(1)
        {       
                for(i = 0;i < 8;i++)
                {
                         ulResult = ADS_sum( (i << 4) | ADS1256_MUXN_AINCOM);       
                        //ulResult = ADS_sum( ADS1256_MUXP_AIN0 | ADS1256_MUXN_AINCOM);       
                        if( ulResult & 0x800000 )
                        {
                                 ulResult = ~(unsigned long)ulResult;
                                ulResult &= 0x7fffff;
                                ulResult += 1;
                                ulResult = -ulResult;
                        }
               
                        ldVolutage = (long double)ulResult*0.59604644775390625;

                        printf("第%d通道:",(i & 0x07)?(i & 0x07) - 1:7);
                        printf("%lf",ldVolutage);         //double
                        printf("uV\r\n");

                        //printf("%x",(unsigned long)ulResult);//16
                        Delay(0x3fFFF);
                }

        }
               
}


作者: yhx'    时间: 2021-7-24 15:57
串口问题解决了,但是现在采集数据不准怎么办啊

作者: yzwzfyz    时间: 2021-7-24 17:25
当你的程序在做【Delay】时,串口来数据了,你又不能去取,会不会丢失呢?
串口数据是别人发的,你是无法控制它何时发出的。
作者: yhx'    时间: 2021-7-24 17:31
yzwzfyz 发表于 2021-7-24 17:25
当你的程序在做【Delay】时,串口来数据了,你又不能去取,会不会丢失呢?
串口数据是别人发的,你是无法 ...

这个应该不冲突吧,串口的数据不是根据那个print输出的吗,我那个延时是最后的,顺序执行的话应该是,在串口输出之后执行的吧
作者:     时间: 2021-7-25 13:03
采集数据不准,你的MCU有没有设置稳定参考源?数据要经过一些滤波处理,软件可以做一定均值,硬件可以加滤波电容




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1