资源简介
NTC热敏电阻测温度原理,及其代码,基于Stm32F103的应用.
代码片段和文件信息
#include “adc.h“
#include “dma.h“
#include “delay.h“
#define ADC1_DR_Address ((u32)0x40012400+0x4c)
extern volatile u16 adc_value[6];
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK战舰STM32开发板V3
//ADC 代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2015/1/14
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
//初始化ADC1
//这里我们仅以规则通道为例
//我们默认仅开启通道1
void Adc_Init(void)
{
//先初始化IO口
RCC->APB2ENR|=1<<2; //使能PORTA口时钟
RCC->APB2ENR|=1<<3; //使能PORTB口时钟
RCC->APB2ENR|=1<<4; //使能PORTC口时钟
GPIOA->CRL&=0XFFFFF0FF;//PA2 anolog输入
GPIOA->CRL&=0XFFFF0FFF;//PA3 anolog输入
GPIOA->CRL&=0X0FFFFFFF;//PA7 anolog输入
GPIOB->CRL&=0XFFFFFFF0;//PB0 anolog输入
GPIOB->CRL&=0XFFFFFF0F;//PB1 anolog输入
GPIOC->CRL&=0XFFF0FFFF;//PC4 anolog输入
RCC->APB2ENR|=1<<9; //ADC1时钟使能
RCC->APB2RSTR|=1<<9; //ADC1复位
RCC->APB2RSTR&=~(1<<9);//复位结束
RCC->CFGR&=~(3<<14); //分频因子清零
//SYSCLK/DIV2=12M ADC时钟设置为12MADC最大时钟不能超过14M!
//否则将导致ADC准确度下降!
RCC->CFGR|=2<<14;
ADC1->CR1&=0XF0FFFF; //工作模式清零
ADC1->CR1|=0<<16; //独立工作模式
ADC1->CR1&=~(1<<8); //扫描清零
ADC1->CR1|=1<<8; //扫描模式
ADC1->CR2&=~(1<<1); //连续转换模式清零
ADC1->CR2|=1<<1; //连续转换模式
ADC1->CR2&=~(7<<17);
ADC1->CR2|=7<<17; //软件控制转换
ADC1->CR2&=~(1<<20);
ADC1->CR2|=1<<20; //使用用外部触发(SWSTART)!!! 必须使用一个事件来触发
ADC1->CR2&=~(1<<11); //右对齐
ADC1->CR2&=~(1<<8); //校准前不开启DMA
ADC1->CR2|=1<<22; //开启规则转换通道
ADC1->SQR1&=~(0XF<<20);
//ADC1->SQR1|=0<<20; //1个转换在规则序列中 也就是只转换规则序列1
//设置通道1的采样时间
ADC1->SQR1|=0x05<<20; //6个转换通道
ADC1->SQR3|=0x00000000; //清零
ADC1->SQR3|=0x02; //通道排序转换
ADC1->SQR3|=0x03<<5;
ADC1->SQR3|=0x07<<10;
ADC1->SQR3|=0x08<<15;
ADC1->SQR3|=0x09<<20;
ADC1->SQR3|=0x0E<<25;
ADC1->SMPR2&=~(7<<6); //通道2采样时间清空
ADC1->SMPR2|=7<<6; //通道2 239.5周期提高采样时间可以提高精确?
ADC1->SMPR2&=~(7<<3*3); //通道4采样时间清空
ADC1->SMPR2|=7<<(3*3); //通道3 239.5周期提高采样时间可以提高精确度?
ADC1->SMPR2&=~(7<<3*7); //通道7采样时间清空
ADC1->SMPR2|=7<<(3*7); //通道7 239.5周期提高采样时间可以提高精确度?
ADC1->SMPR2&=~(7<<3*8); //通道8采样时间清空
ADC1->SMPR2|=7<<(3*8); //通道8 239.5周期提高采样时间可以提高精确度?
ADC1->SMPR2&=~(7<<3*9); //通道9采样时间清空
ADC1->SMPR2|=7<<(3*9); //通道9 239.5周期提高采样时间可以提高精确度?
ADC1->SMPR1&=~(7<<3*4); //通道14采样时间清空
ADC1->SMPR1|=7<<(3*4); //通道14 239.5周期提高采样时间可以提高精确度?
ADC1->CR2|=1<<0; //开启AD转换器
ADC1->CR2|=1<<22; //开启规则转换通道
ADC1->CR2|=1<<8; //开启DMA传输
ADC1->CR2|=1<<3; //使能复位校准
while(ADC1->CR2&1<<3); //等待校准结束
//该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。
ADC1->CR2|=1<<2; //开启AD校准
while(ADC1->CR2&1<<2){}; //等待校准结束
//该位由软件设置以开始校准,并在校准结束时由硬件清除
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\ADC\
文件 4154 2016-04-02 16:53 stm32 ntc温度测试程序\HARDWARE\ADC\adc.c
文件 801 2015-01-14 18:33 stm32 ntc温度测试程序\HARDWARE\ADC\adc.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\BEEP\
文件 756 2015-01-10 22:24 stm32 ntc温度测试程序\HARDWARE\BEEP\beep.c
文件 696 2015-01-10 22:24 stm32 ntc温度测试程序\HARDWARE\BEEP\beep.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\DMA\
文件 2617 2016-04-02 16:53 stm32 ntc温度测试程序\HARDWARE\DMA\dma.c
文件 778 2016-04-01 14:24 stm32 ntc温度测试程序\HARDWARE\DMA\dma.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\EXTI\
文件 1878 2015-01-10 22:24 stm32 ntc温度测试程序\HARDWARE\EXTI\exti.c
文件 651 2015-01-10 22:24 stm32 ntc温度测试程序\HARDWARE\EXTI\exti.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\KEY\
文件 1507 2015-01-10 22:23 stm32 ntc温度测试程序\HARDWARE\KEY\key.c
文件 904 2015-01-10 22:24 stm32 ntc温度测试程序\HARDWARE\KEY\key.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\LCD\
文件 35016 2014-11-30 20:05 stm32 ntc温度测试程序\HARDWARE\LCD\FONT.H
文件 83123 2015-04-25 16:08 stm32 ntc温度测试程序\HARDWARE\LCD\ILI93xx.c
文件 7524 2015-04-25 16:08 stm32 ntc温度测试程序\HARDWARE\LCD\lcd.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\LED\
文件 932 2015-01-10 22:23 stm32 ntc温度测试程序\HARDWARE\LED\led.c
文件 690 2015-01-10 22:23 stm32 ntc温度测试程序\HARDWARE\LED\led.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\OLED\
文件 7248 2015-02-08 19:05 stm32 ntc温度测试程序\HARDWARE\OLED\oled.c
文件 1697 2015-01-14 12:42 stm32 ntc温度测试程序\HARDWARE\OLED\oled.h
文件 35017 2014-01-02 11:23 stm32 ntc温度测试程序\HARDWARE\OLED\oledfont.h
目录 0 2016-04-08 14:11 stm32 ntc温度测试程序\HARDWARE\RTC\
文件 7823 2015-02-26 21:31 stm32 ntc温度测试程序\HARDWARE\RTC\rtc.c
文件 1298 2015-01-30 17:52 stm32 ntc温度测试程序\HARDWARE\RTC\rtc.h
............此处省略81个文件信息
- 上一篇:IEEE 802.3 以太网协议基础解析
- 下一篇:樊平毅随机过程第二版答案
评论
共有 条评论