<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 之 內部溫度傳感器

STM32 之 內部溫度傳感器

作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò ) 收藏
和ADC的設置基本相同,算是ADC的擴展應用。

只是在計算方法上有變化,在adc的初始化程序里面做一些變動(dòng)就可以了。

本文引用地址:http://dyxdggzs.com/article/201612/325139.htm

包含函數:

(1)Main

C語(yǔ)言:Codee#14690

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 實(shí)驗平臺 : ST 官方三合一套件
+ 硬件 : STM32F103C8T6
+ 開(kāi)發(fā)平臺 : IAR For ARM 5.40
+ 仿真器 : J-Link
+ 日期 : 2010-10-28
+ 頻率 :HSE = 8MHz ,主頻 = 72MHz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

#include "includes.h"
#include "stdio.h"
/*******************************************************************************
== 變量聲明 ==
*******************************************************************************/
floatADC_Value,Tem;
unsignedchara=0;
unsignedcharb=0;
unsignedcharc=0;
unsignedchard=0;

/*******************************************************************************
== Main 函數 ==
*******************************************************************************/
voidmain(void)
{
//---- 初始化 ------------------------------------------------------
RCC_Configuration();//配置系統時(shí)鐘
NVIC_Configuration();//配置 NVIC 和 Vector Table
SysTick_Config();//配置SysTick的精確延時(shí)

GPIO_Configuration();
UART1_Configuration();
AD_Configration();
DMA_Configration();


//---- 任務(wù)開(kāi)始 ----------------------------------------------------
LED1_HIGH;LED2_HIGH;LED3_HIGH;LED4_HIGH;// 初始化讓燈全滅

Uart1_PutString("===== douzi STM32 @ Temperature =====rn",39);

while(1)
{// 這里只選采集的10個(gè)數據中的一個(gè),應該做一些算法進(jìn)行濾波才好
ADC_Value=(float)(sys_analog[5])*330/409600;// 計算公式datasheet上可以找到,但是我沒(méi)找到。
Tem=(1.42-ADC_Value)*1000/4.35+25;

Tem=Tem*100;// ADC是12位的,這里數據類(lèi)型轉換有問(wèn)題
a=Tem/1000;
b=(Tem-a*1000)/100;
c=(Tem-a*1000-b*100)/10;
d=Tem-a*1000-b*100-c*10;

Uart1_PutChar(a+0);
Uart1_PutChar(b+0);
Uart1_PutString(".",1);
Uart1_PutChar(c+0);
Uart1_PutChar(d+0);
Uart1_PutString(" Cn",3);

Delay_Ms(1000);
}
}

(2)在A(yíng)DC初始化函數里要變動(dòng)些內容,關(guān)于溫度傳感器

C語(yǔ)言:Codee#14691
/*******************************************************************************
* Function Name : AD_Configration
* Description : Configures the ADC1
* Input : None
* Output : None
* Return : None
*******************************************************************************/
voidAD_Configration(void)
{
ADC_InitTypeDefADC_InitStructure_ADC1;

/* Resets ADC1 */
ADC_DeInit(ADC1);

ADC_InitStructure_ADC1.ADC_Mode=ADC_Mode_Independent;// 配置ADC1 工作在獨立模式
ADC_InitStructure_ADC1.ADC_ScanConvMode=ENABLE;// 配置ADC1 模數轉換工作在掃描模式(多通道模式)
ADC_InitStructure_ADC1.ADC_ContinuousConvMode=ENABLE;// 配置ADC1 模數轉換工作在連續模式
ADC_InitStructure_ADC1.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;// 配置ADC1 模數轉換有軟件方式啟動(dòng)而非中斷方式
ADC_InitStructure_ADC1.ADC_DataAlign=ADC_DataAlign_Right;// 配置ADC1 模數轉換數據對齊方式為右對齊
ADC_InitStructure_ADC1.ADC_NbrOfChannel=1;// 配置ADC1 模數轉換的通道數目 為 1個(gè)通道
ADC_Init(ADC1,&ADC_InitStructure_ADC1);// 配置ADC1 初始化
//常規轉換序列1:通道10
ADC_RegularChannelConfig(ADC1,ADC_Channel_16,1,ADC_SampleTime_239Cycles5);// 配置為 ADC1,通道1,1個(gè)通道,采樣時(shí)間為239.5個(gè)周期,周期越長(cháng)采集的信號越準越穩
// 對應的管教所對應的ADC通道時(shí)對應的,一定不要搞錯!
/* Enable the temperature sensor and vref internal channel */
ADC_TempSensorVrefintCmd(ENABLE);// 使能溫度傳感器內部參考電壓通道

ADC_DMACmd(ADC1,ENABLE);// 使能ADC1的DMA請求

ADC_Cmd(ADC1,ENABLE);// 使能ADC1

/* Enable ADC1 reset calibaration register */
ADC_ResetCalibration(ADC1);// 重置ADC1的校準寄存器
/* Check the end of ADC1 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC1));// 檢測是否重置完畢

/* Start ADC1 calibaration */
ADC_StartCalibration(ADC1);// 開(kāi)始校準 ADC1
/* Check the end of ADC1 calibration */
while(ADC_GetCalibrationStatus(ADC1));// 檢測是否校準完畢

/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1,ENABLE);// 軟件使能ADC1的轉換
}




關(guān)鍵詞: STM32內部溫度傳感

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>