新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2016-3-30
- 在线时间
- 1 小时
|
1金钱
想问下大家,为什么我的程序会莫名其妙地不好使,我只改动了完全毫不相关的语句,结果就完全不好使了。
具体为:
while(1)
{
Average();
Adc_Display();
printf("通道AD电压值:%f V\r\n",voltvalue[0]);
delay_ms(10);
printf("通道AD平均值:%d V\r\n",average[0]);
delay_ms(10);
printf("通道1电压值:%f V\r\n",voltvalue[1]);
delay_ms(10);
printf("通道2电压值:%f V\r\n",voltvalue[2]);
delay_ms(10);
printf("通道3电压值:%f V\r\n",voltvalue[3]);
delay_ms(10);
printf("通道4电压值:%f V\r\n",voltvalue[4]);
delay_ms(10);
printf("通道5电压值:%f V\r\n",voltvalue[5]);
delay_ms(500);
}
在这里向不显示通道AD平均值,我直接将其删除,再编译写入后,程序便无法正确运行了。
还有一处为:
void Average()
{
u16 sum=0;
u8 i,j;
for(i=0;i<6;i++)
{
for(j=0;j<50;j++)
{
sum+=adc_data[j];
}
average=sum/50;
sum=0;
}
}
在这里我发现sum大小不够,想改成u32 sum,结果更改后,程序又无法正常工作。
这里的无法正常工作,我定义为lcd不显示,串行口接收不到数据,在不做这些改动时,都是可以正常工作的。
实在是很苦恼TT
谢谢大家了!!!!!!!!!
|
|