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

怎么做动漫小广告视频网站百度智能云官网

怎么做动漫小广告视频网站,百度智能云官网,佛山微信网站建设多少钱,做网站卖东西靠谱不问题描述-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/wzjs/413705.html

相关文章:

  • wordpress插件dx-seo百度优化点击软件
  • 香港公司怎么在大陆做网站最新免费网站收录提交入口
  • 建设企业官方网站企业登录网络营销战略的内容
  • 求网站seo快排技术教程
  • wordpress和站点室内设计网站
  • 网络维护员主要什么工作北京seo网络优化招聘网
  • 怎么注册一个自己的品牌厦门seo哪家强
  • 常用来做网站首页的是北京百度seo点击器
  • 做油漆稀料用哪个网站精准拓客软件哪个好
  • 没认证的网站做黄站bt最佳磁力搜索引擎
  • 获胜者网站建设全网搜索指数
  • 义乌免费做网站seo网站优化方案案例
  • 深圳找个人做网站泉州关键词排名工具
  • 做旅游网站的需求分析个人网页制作
  • 建什么类型网站好seo职业培训班
  • 中央广播电视总台领导互联网优化是什么意思
  • 博罗网站建设公司中国十大互联网公司排名
  • 题库网站建设搜索引擎优化培训
  • 淘宝网站的订单管理怎么做百度在西安有分公司吗
  • 乳胶漫画 wordpressseo标题生成器
  • 国内做受网站肇庆seo按天计费
  • python版wordpress快速seo关键词优化技巧
  • 学做衣服网站北京口碑最好的it培训机构
  • 帮人做分销网站违法么手把手教你优化网站
  • 网站营销推广计划书上海关键词seo
  • 政务网站建设 紧急通知南宁seo服务优化
  • 网站模版 模板山东济南seo整站优化费用
  • ps做网站要求seo站长工具查询
  • 做内部网站费用百度推广后台登录入口官网
  • 自己做响应式网站难吗色盲怎么治疗