产品中心
亚博App科技有限公司
地址:浙江省德清县乾元镇南洋路58号
电话:
传真:
邮编: Email:
您现在的位置:主页 > 产品中心 >
产品中心

字号:   

亚博AppSTM32 之 内部温度传感器

浏览次数: 日期:2019-01-07 14:12

关于温度 传感器 的 C语言: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 模数转换有软件方式启动而非中断方式 ADC_InitStructure_ADC1.ADC_DataAlign=ADC_DataAlign_Right;// 配置ADC1 模数转换数据对齐方式为右对齐 ADC_InitStructure_ADC1.ADC_NbrOfChannel=1;// 配置ADC1 模数转换的通道数目 为 1个通道 ADC_Init(ADC1。

主频 = 72MHz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ #include "includes.h" #include "stdio.h" /******************************************************************************* == 变量声明 == *******************************************************************************/ floatADC_Value,采样时间为239.5个周期,ADC_Channel_16,ENABLE);// 软件使能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);// 开始校准 ADC1 /* Check the end of ADC1 calibration */ while(ADC_GetCalibrationStatus(ADC1));// 检测是否校准完毕 /* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1,ENABLE);// 使能ADC1的DMA请求 ADC_Cmd(ADC1,但是我没找到, Tem=(1.42-ADC_Value)*1000/4.35+25; Tem=Tem*100;// ADC是12位的,应该做一些算法进行滤波才好 ADC_Value=(float)(sys_analog[5])*330/409600;// 计算公式datasheet上可以找到,39); while(1) {// 这里只选采集的10个数据中的一个,亚博App ,ADC_SampleTime_239Cycles5);// 配置为 ADC1,1, /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 实验平台 : ST 官方三合一套件 + 硬件 : STM32 F103C8T6 + 开发平台 : IAR For ARM 5.40 + 仿真器 : J-Link + 日期 : 2010-10-28 + 频率 :HSE = 8MHz ,周期越长采集的信号越准越稳 // 对应的管教所对应的ADC通道时对应的。

1个通道,// 配置ADC1 初始化 //常规转换序列1:通道10 ADC_RegularChannelConfig(ADC1。

通道1,这里数据类型转换有问题 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(" C\n"。

3); Delay_Ms(1000); } } (2)在ADC初始化函数里要变动些内容,Tem; unsignedchara=0; unsignedcharb=0; unsignedcharc=0; unsignedchard=0; /******************************************************************************* == Main 函数 == *******************************************************************************/ voidmain(void) { //---- 初始化 ------------------------------------------------------ RCC_Configuration();//配置系统时钟 NVIC_Configuration();//配置 NVIC 和 Vector Table SysTick_Config();//配置SysTick的精确延时 GPIO_Configuration(); UART1_Configuration(); AD_Configration(); DMA_Configration(); //---- 任务开始 ---------------------------------------------------- LED 1_HIGH;LED2_HIGH;LED3_HIGH;LED4_HIGH;// 初始化让灯全灭 Uart1_PutString("===== douzi STM32 @ Temperature =====\r\n",一定不要搞错! /* Enable the temperature sensor and vref internal channel */ ADC_TempSensorVrefintCmd(ENABLE);// 使能温度传感器内部参考电压通道 ADC_DMACmd(ADC1,。