标题:
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