STM32 中 ADC 数据到 float 浮点数的转化与显示方法
STM32 自带一个或多个 12bit 24通道 ADC,足够一般场合使用,但是使用过程中会遇到采集与显示的细节问题。我目前是用的 LCD 来显示,但是LCD驱动中并没有 float 浮点数显示函数,但是有字符串显示功能,所以我们可以利用这个来实现所需的功能:
void LCD_ShowString(uint16_t x,uint16_t y,uint16_t width,uint16_t height,uint8_t size,char *p);
在实际使用中通常会发现文本的格式化是一件比较繁琐的事,实际上。。。菜是原罪。用好c语言的stdio.h库,基本就没有这些问题。
实现思路
我们首先定义一个字符串,用于存储结果浮点数。
/* ADC 的转换数值 */
char ADC_FLOAT_VALUE[20];
然后直接调用 sprintf(char* p,const char* pattern,...)
进行格式化即可
sprintf(ADC_FLOAT_VALUE,"%f",float_val);
这样便得到了浮点数的字符串结果。
注:
<font color='red'>字符串可以保留较长的长度,由于格式化会自动插入 \0 字符串结尾符,所以在使用中多余的长度不会影响实际输出结果。</font>
网友评论