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

确保网站地址没有做301跳转广州市人民政府新闻办公室

确保网站地址没有做301跳转,广州市人民政府新闻办公室,六安杂谈,wordpress建站必须选择主题关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决 今天发现rt系统的adc有一个缺陷(也可能是我移植的方法有问题,这就不得而知了!),就是只能单次转换,事情是这样的: 我在stm32的RT-T…

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决

今天发现rt系统的adc有一个缺陷(也可能是我移植的方法有问题,这就不得而知了!),就是只能单次转换,事情是这样的:
我在stm32的RT-Thread系统bsp上添加了adc相关驱动,但是在写完验证程序在板子上跑的时候,我发现用下面的程序是只会转换一次adc的,也就是说,只会测量第一次的电压值,之后再调用rt_adc_read函数,得到的一直都是第一次的值。

我当时的rt应用程序如下:


#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#define ADC_DEV_NAME        "adc1"  /* ADC 设备名称 */
#define ADC_DEV_CHANNEL     6       /* ADC 通道 */
#define REFER_VOLTAGE       330         /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS        (1 << 12)   /* 转换位数为12位 */void my_adc_test(void)
{rt_adc_device_t adc_dev;            /* ADC 设备句柄 */rt_uint32_t value;float vol;/* 查找设备 */adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);if(adc_dev==RT_NULL){rt_kprintf("can't find adc!\r\n");return;}rt_kprintf("find adc successfully!\r\n");/* 使能设备 */rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);while(1){/* 读取采样值 */value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);/* 转换为对应电压值 */vol = (float)value * REFER_VOLTAGE / CONVERT_BITS;rt_kprintf("the voltage is :%d.%02d \n", (int)vol / 100, (int)vol % 100);rt_kprintf("value=%d\r\n",value);rt_thread_delay(500);}/* 关闭通道 */rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
}void show_adc1_pin(void)
{rt_kprintf("\r\n");rt_kprintf("The adc1 pins:\r\n");rt_kprintf("IN6--->A6\r\n");rt_kprintf("IN7--->A7\r\n");rt_kprintf("IN8--->B0\r\n");rt_kprintf("IN9--->B1\r\n");
}
MSH_CMD_EXPORT(show_adc1_pin, show_adc1_pin);

很明显,RT-Thread系统的bsp驱动并没有开启stm32的连续adc转换。解决办法只能是每次转换前都失能,使能一次adc。我不可能再去更改bsp驱动的,因为下一次重新使用env工具一配置,之前写的都被清除了。所以只能用这种笨的办法,哪位仁兄有更好的解决办法可以探讨一下哈

解决之后的程序如下:


#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#define ADC_DEV_NAME        "adc1"  /* ADC 设备名称 */
#define ADC_DEV_CHANNEL     6       /* ADC 通道 */
#define REFER_VOLTAGE       330         /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS        (1 << 12)   /* 转换位数为12位 */void my_adc_test(void)
{rt_adc_device_t adc_dev;            /* ADC 设备句柄 */rt_uint32_t value;float vol;/* 查找设备 */adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);if(adc_dev==RT_NULL){rt_kprintf("can't find adc!\r\n");return;}rt_kprintf("find adc successfully!\r\n");/* 使能设备 */rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);while(1){/* 读取采样值 */value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);/* 转换为对应电压值 */vol = (float)value * REFER_VOLTAGE / CONVERT_BITS;rt_kprintf("the voltage is :%d.%02d \n", (int)vol / 100, (int)vol % 100);rt_kprintf("value=%d\r\n",value);rt_thread_delay(500);//加上下面两行就可以连续转换rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);}/* 关闭通道 */rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
}void show_adc1_pin(void)
{rt_kprintf("\r\n");rt_kprintf("The adc1 pins:\r\n");rt_kprintf("IN6--->A6\r\n");rt_kprintf("IN7--->A7\r\n");rt_kprintf("IN8--->B0\r\n");rt_kprintf("IN9--->B1\r\n");
}MSH_CMD_EXPORT(show_adc1_pin, show_adc1_pin);

实验现象:
adc

http://www.tj-hxxt.cn/news/31289.html

相关文章:

  • 网站做多语言网络推广服务外包
  • 做网站需要什么语言域名申请哪家好
  • 如何与其他网站做友情链接站优云seo优化
  • 查 网站接入服务提供者名称淘宝搜索指数
  • 邗江建设局网站资料下载网站宣传推广文案
  • 无锡网站建设电话网站建设高端公司
  • 睢宁县凌城做网站的seo入门教程seo入门
  • WordPress能够做小说网站吗国内电商平台有哪些
  • 表白网站建设seo站长教程
  • 网站建设培训个人免费推广平台有哪些
  • 天津平台网站建设推荐搜索引擎的工作原理是什么?
  • 微擎wordpress重庆百度整站优化
  • 网站二级域名怎么做乐清网站建设
  • 聚美优品网站怎么做的个人网站推广
  • 网站构建的滚动新闻怎么做建立自己的网站平台
  • 厦门网站建设哪家专业站长工具推荐网站
  • 记事本做网站怎么调整图片间距友链交换网站源码
  • 设计响应式网站多少钱班级优化大师使用心得
  • c 做网站后台软文广告范文
  • 网站怎么做seo优化啊营销培训课程2022
  • 网站设计合同不用流量的地图导航软件
  • 广告公司做的网站字体侵权上海优化网站
  • 怎么建设一个网站赚钱网站推广郑州
  • 手机访问网站 自动缩放四川企业seo推广
  • wordpress夜间模式seo怎么发布外链
  • 专门做产品排名的网站东莞网站建设排名
  • 提供网站建设服务的网站推广代理
  • 珠海网站建cms快速建站
  • 西峡网站建设中国宣布取消新冠免费治疗
  • 重庆网站建设-首选云慧通打开一个网站