当前位置: 首页 > news >正文

国内flex做的网站网页设计实训班

国内flex做的网站,网页设计实训班,济南个人制作网站,网页设计素材加工问题描述-1 想实现的功能是,通过ADC实时测量某引脚的电压及其占空比。 可以通过旋转电位器,更改其电压。 首先我定义了这几个变量 uint32_t adc_value;//HAL库函数里面得出的采样值(实时更新) uint32_t percentage6;//占空比,随着adc_val…

问题描述-1

想实现的功能是,通过ADC实时测量某引脚的电压及其占空比。

可以通过旋转电位器,更改其电压。

首先我定义了这几个变量

uint32_t adc_value;//HAL库函数里面得出的采样值(实时更新)
uint32_t percentage6;//占空比,随着adc_value变化而变化
uint32_t percentage7;//占空比,随着adc_value变化而变化

然后在while循环里面不断测量adc的采样值 

adc_value = HAL_ADC_GetValue(hadc);

 同样的在while循环里面不断更新这两个占空比的值。

percentage6 = adc_value / 4096;
percentage7 = adc_value / 4096;

但是会发现percentage6,percentage7的值总是0.

之前一直没想到小数的问题(太久不写代码了,悲).

解决方案-1

就是把赋值过程改成浮点数再转换成整数。

percentage6 = ((float)adc_value / 4096.0f)*100;
percentage7 = ((float)adc_value / 4096.0f)*100;

这样出来就是整数了

percentage6  = 80。。。等等\

ok解决

问题二:

实际上面的过程我都是用函数实现的。

把lcd_show()放在while里面循环执行。

void lcd_show()
{percentage6 = ((float)adc_value / 4096.0f)*100;percentage7 = ((float)adc_value / 4096.0f)*100;if (Page == 0 && mode == 0){sprintf(text, "      Data         ");LCD_DisplayStringLine(Line0, (uint8_t *)text);sprintf(text, "     V:%.2fV      ", get_vol(&hadc2));LCD_DisplayStringLine(Line2, (uint8_t *)text);sprintf(text, "     Mode:AUTO    ");LCD_DisplayStringLine(Line4, (uint8_t *)text);}else if (Page == 0 && mode == 1){sprintf(text, "      Data         ");LCD_DisplayStringLine(Line0, (uint8_t *)text);sprintf(text, "     V:%.2fV      ", get_vol(&hadc2));LCD_DisplayStringLine(Line2, (uint8_t *)text);sprintf(text, "     Mode:MANU    ");LCD_DisplayStringLine(Line4, (uint8_t *)text);}else if (Page == 1){sprintf(text, "      Para         ");LCD_DisplayStringLine(Line0, (uint8_t *)text);sprintf(text, "    PA6:%d         ",percentage6);LCD_DisplayStringLine(Line2, (uint8_t *)text);sprintf(text, "    PA7:%d         ",percentage7);LCD_DisplayStringLine(Line4, (uint8_t *)text);}
}
double get_vol(ADC_HandleTypeDef *hadc)
{HAL_ADC_Start(hadc);adc_value = HAL_ADC_GetValue(hadc);return 3.3 * adc_value / 4096;
}

但是在调试的时候发现,percentage的值只能更新一次,但是adc_value的值是不断变化的

解决二:

这是因为,在lcd_show()函数实现的开头赋值的时候,没更新adc_value的值。

在开头加上这个函数重新更新一遍就好了。

 get_vol(ADC_HandleTypeDef *hadc)

记录学习。

http://www.dtcms.com/a/422359.html

相关文章:

  • 上海网站建设 迈若在线绘画网站
  • jquery特效网站计算机编程培训学校哪家好
  • 广西建设职业技术学院青年网站做瞹免费视频网站
  • 济南市建设网站icp备案信息查询
  • 如何与网站建立私密关系人事处网站建设绩效目标概述
  • 如何站自己做网站手机系统网站
  • 网站用户体验存在问题光谷网站开发
  • 自助设计网站宁波网页设计招聘
  • 越秀区网站建设公司网站运营专员做什么
  • 网站建设平台开发预约网免费建站流程
  • 海口网站建设策划方案pxhere素材网站
  • 企业网站用什么开发好-商业推广规模以上工业企业认定标准
  • 商标注册平台官网东莞网络营销十年乐云seo
  • 网站怎么做赚钱网站开发详情
  • 网站的底部导航栏怎么做做网站每年要交不费用吗
  • 阿里云服务器网站目录湛江企业建站系统
  • 建设工程施工合同范本哪个网站wordpress 自定义数据表
  • 安徽省建设行业安全协会网站wordpress视频播放器
  • 网站建设编辑叫什么岗位做外贸的网站公司
  • 域名网站建设流程wordpress非管理员编辑器不全
  • 做网站傻瓜软件建设网站建设网页制作0402高设计词
  • 手绘风网站国外 wordpress 免费空间
  • 界面设计网站推荐口碑营销有哪些方式
  • 佛山新网站建设服务公司合肥网站快速排名提升
  • 延边州住房城乡建设局网站dede网站单页面怎么做
  • 一个网站上能不能放两个域名 两个备案号行业门户网站大全
  • 投票网站制作免费东莞市塘厦网站建设
  • 怎么用ftp清空网站做外贸的物流网站
  • 保洁公司 网站模板免费h5游戏制作平台
  • 怎么样让客户做网站和小程序wordpress seo 优化插件