cc2530读取片内温度传感值并发送至串口内显示的完整C语言代
时间: 2023-06-15 07:03:12 浏览: 91
以下是cc2530读取片内温度传感值并发送至串口内显示的完整C语言代码:
```
#include<stdio.h>
#include<ioCC2530.h>
#define BAUDRATE 115200 //定义波特率
#define TIMER_ONE_SECOND 32768
unsigned int temperature; //存储温度传感器的值
void InitUART(void) //初始化串口
{
PERCFG = 0x00; //将USART0的I/O位置设置为P0.2和P0.3
P0SEL |= 0x0C; //将P0.2和P0.3设置为外设功能
U0CSR |= 0x80; //设置UART模式
U0GCR |= 11; //设置波特率生成器的时钟预分频器为11
U0BAUD = 216; //设置波特率发生器的计数值为216
U0CSR |= 0x40; //允许UART接收
}
void InitADC(void) //初始化ADC
{
ADCCFG |= 0x08; //选择内部温度传感器
ADCIF = 0; //清除ADC中断标志位
ADCCON3 = 0x00; //设置ADC时钟为1/32 CPU时钟
ADCCON1 = 0x30; //设置ADC参考电压为1.25 V
}
void StartADC(void) //开始ADC转换
{
ADCCON1 |= 0x40; //启动ADC转换
while(!ADCIF); //等待ADC转换完成
ADCIF = 0; //清除ADC中断标志位
temperature = ADCL | (ADCH << 8); //读取温度传感器的值
}
void main(void)
{
InitUART(); //初始化串口
InitADC(); //初始化ADC
while(1)
{
StartADC(); //开始ADC转换
printf("Temperature: %d\n", temperature); //将温度传感器的值发送至串口内显示
for(unsigned int i=0; i<TIMER_ONE_SECOND; i++); //延时1秒钟
}
}
```
阅读全文