3391|3

503

帖子

1

TA的资源

纯净的硅(初级)

楼主
 

TIVAC LAUNCHPAD ADC内部温度传感器 [复制链接]

代码是在ti\TivaWare_C_Series-2.0.1.11577\examples\peripherals\adc里的   
计算结果那稍微改动了一下
用温度计试了   9(阳台)度到20(屋里温度)度 挺准的  就是数不太固定
  1. #include <stdint.h>
  2. #include "inc/hw_memmap.h"
  3. #include "driverlib/adc.h"
  4. #include "inc/hw_uart.h"
  5. #include "driverlib/gpio.h"
  6. #include "driverlib/interrupt.h"
  7. #include "driverlib/pin_map.h"
  8. #include "driverlib/sysctl.h"
  9. #include "driverlib/uart.h"
  10. #include "utils/uartstdio.h"
  11. void
  12. InitConsole(void)
  13. {
  14.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
  15.     GPIOPinConfigure(GPIO_PA0_U0RX);
  16.     GPIOPinConfigure(GPIO_PA1_U0TX);
  17.     SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
  18.     UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC);
  19.     GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
  20.     UARTStdioConfig(0, 115200, 16000000);
  21. }
  22. void main()
  23. {
  24.         uint32_t pui32ADC0Value[1];
  25.         uint32_t ui32TempValueC;
  26.          SysCtlClockSet(SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
  27.                            SYSCTL_XTAL_16MHZ);
  28.         InitConsole();
  29.         UARTprintf("ADC ->\n");
  30.         UARTprintf("  Type: Internal Temperature Sensor\n");
  31.         UARTprintf("  Samples: One\n");
  32.     UARTprintf("  Update Rate: 250ms\n");
  33.         UARTprintf("  Input Pin: Internal temperature sensor\n\n");
  34.         SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);//使能ADC
  35.         //                   ADC基地址  采样序列号3  处理事件  相对其他优先级高0 最高
  36.    ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0);
  37. //                      ADC基地址        采样序列编号  3 步值范围0    温度传感器 选着  中断使能 队列结束选择
  38.    ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_TS | ADC_CTL_IE |
  39.                             ADC_CTL_END);
  40.    ADCSequenceEnable(ADC0_BASE, 3);//使能ADC采样序列
  41.    ADCIntClear(ADC0_BASE, 3);//清除ADC采样序列
  42.         while(1)
  43.         {
  44.                  ADCProcessorTrigger(ADC0_BASE, 3);//引起一次ADC触发
  45.                         //     获取采样序列状态      基地址    采样序列编号  false 原始中断状态        true屏蔽的中断状态
  46.              while(!ADCIntStatus(ADC0_BASE, 3, false))
  47.                         {
  48.                         }
  49.              ADCIntClear(ADC0_BASE, 3);//清除ADC采样序列
  50.               //ADC采样序列中获取数据                               指向数据缓冲区
  51.          ADCSequenceDataGet(ADC0_BASE, 3, pui32ADC0Value);
  52.          ui32TempValueC =127.5-((75*30*pui32ADC0Value[0])/40960);
  53.          UARTprintf("Temperature = %3d*C\r", ui32TempValueC);
  54.              SysCtlDelay(SysCtlClockGet() / 12);

  55.         }
  56. }
复制代码
查看本帖全部内容,请登录或者注册

最新回复

stdbool.h 没包含也可以? 貌似用到了false 这个宏定义。  详情 回复 发表于 2014-7-1 22:06
 
点赞 关注

回复
举报

15

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不错!!!!
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
帮顶
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(中级)

4
 
stdbool.h 没包含也可以? 貌似用到了false 这个宏定义。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名赢【小米双肩包、contigo水杯】 | TI MSPM0 系列 MCU 再添新成员
了解TI 前沿新品——高性能与高性价比的优秀组合 MSPM0G351x / MSPM0L111x,4月24日(周四)上午10:00直播~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 9

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表