2019-03-23 19:02发布
ddllxxrr 发表于 2013-12-29 22:20 这句总是得取整数部分,并且还是CHAR,言外之意,就是基本上值 不变
dzgcsj_hz 发表于 2013-12-30 19:57 我是每发送一个字符才等待的,一次电压值发送完成之后,怎么会停留在while里呢?
最多设置5个标签!
{
float temp = d*3.3/4096;
unsigned char s = (unsigned char)(temp * 10);
// USART_SendData(USART1 , table[s/10]);
// while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
// USART_SendData(USART1 , '.');
// while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
// USART_SendData(USART1 , table[s%10]);
// while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
// USART_SendData(USART1 , ' ');
// while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
}
既然没有开串口,为什么不屏蔽串口应用呢?你程序一直在检测串口发送这里的while停留。难怪不刷信AD值,要是变化了才怪。
temp取值范围在0到3.3之间 ,乘以10之后转换成char,s范围是0到33,怎么会不变你?
抱歉,那一块我看错了。
下一次的ADC采样,你在什么地方启动了?
while (1)
{
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
res = ADC_GetConversionValue(ADC1);
disp_adc2(res);
ADC_ClearFlag(ADC1, ADC_FLAG_EOC);
}
}
应把最上一句加到while中第一句
一周热门 更多>