• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > CC2541板载温度传感器数据采集问题

CC2541板载温度传感器数据采集问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了cc2541,cc2541中文数据手册,cc2541烧录器,cc2541编程器,cc2541编程器脱机等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CC2541板载温度传感器数据采集问题
描述:

BLEADCCC2541

数据采集采用如下方式获取:
uint16 ADC_Read (uint8 channel)
{
    int16  reading = 0;
    uint8  adcChannel = 0x01<<channel;
    int16  Result = 0;
    if (channel <= 7)   // 通道0-7需要通过P0.0-P0.7输入
    {
        ADCCFG |= adcChannel;
    }
    uint8 i=0;
    do{
        ADCCON3 = channel | 0x20;           // 12位精度,启动转换
        while (!(ADCCON1 & 0x80));          // 等待转换完成
        // 读取采样结果
        reading = (int16)(ADCL);
        reading |= (int16)(ADCH << 8);
        reading >>= 4;                      // 丢弃低位
        Result += reading;                  // 累加
    }while(i++ < 10);   // 连续采样10次
    if (channel <= 7)
    {
        ADCCFG &= (adcChannel ^ 0xFF);
    }
    return (Result/10);
}

其中为什么要连续采样10次呢?
最初考虑是取平均值让最终结果稳定,但是我尝试修改了一下(将10修改成2),发现所得到的数据发生了变化(正常25,修改后变为88),求大神指导~~~ CC2541板载温度传感器数据采集问题 CC2541板载温度传感器数据采集问题


解决方案1:

你改成 1 试一下

解决方案2:

连续十次采样就是均值滤波,如果改成两次采样,在ruturn哪里也要改为2

解决方案3:

reading |= (int16)(ADCH << 8);
==>
reading |= ((int16)(ADCH)) << 8;


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • CC2541板载温度传感器数据采集问题
  • 怎么把CC2541的电池电量获取,在广播出去

相关文章

  • 2017-06-05 为什么网络缓冲池会耗尽?
  • 2017-06-05 请教DDK的问题
  • 2017-06-05 iarcc2530协议栈的问题
  • 2017-06-05 WinME下怎么安装驱动?象2K,XP下调用UpdateDriverForPlugAndPlayDevices那样~!
  • 2017-06-05 以太网芯片选型求教
  • 2017-06-05 cgi没能成功加载css文件和js文件的问题
  • 2017-06-05 wince6如何实现只读不写flash。mini2440
  • 2017-06-05 驱动返回的HANDLE,与应用程序调用操作系统产生的HANDLE,是不是一码事?
  • 2017-06-05 VC++60中如何获得并口1的地址
  • 2017-06-05 CPUiowait与异步IO有关系吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 按照迅为的教程制作的linux最小操作系统,加载u盘
    • 关于SRIO交换机访问的问题
    • 新手上路,请高手指点(关于读卡器驱动)
    • 请问有人研究iTron和T-Engine么?
    • 如何设置窗体居中?
    • ppp无法拨号失败
    • 搭建linux平台交叉编译,使用eclipse裸机调试6410,有个gdb的问题
    • 上行带宽和下行带宽共享带宽这一概念如何理解?
    • 基于K60的RS-485通信的设计
    • PS/2键盘上层过滤驱动设计

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有