资源简介
基于STM32的心率传感器设计代码 mdk代码完整可用 注释充分 包含界面
代码片段和文件信息
#include “adc.h“
#include “delay.h“
//初始化ADC
//我们默认仅开启ADC1_CH5
void Adc_Init(void)
{
//先初始化IO口
RCC->APB2ENR|=1<<8; //使能ADC1时钟
RCC->AHB1ENR|=1<<0; //使能PORTA时钟
GPIO_Set(GPIOAPIN5GPIO_MODE_AIN00GPIO_PUPD_PU); //PA5模拟输入下拉
RCC->APB2RSTR|=1<<8; //ADCs复位
RCC->APB2RSTR&=~(1<<8); //复位结束
ADC->CCR=3<<16; //ADCCLK=PCLK2/4=84/4=21MhzADC时钟最好不要超过36Mhz
ADC1->CR1=0; //CR1设置清零
ADC1->CR2=0; //CR2设置清零
ADC1->CR1|=0<<24; //12位模式
ADC1->CR1|=0<<8; //非扫描模式
ADC1->CR2&=~(1<<1); //单次转换模式
ADC1->CR2&=~(1<<11); //右对齐
ADC1->CR2|=0<<28; //软件触发
ADC1->SQR1&=~(0XF<<20);
ADC1->SQR1|=0<<20; //1个转换在规则序列中 也就是只转换规则序列1
//设置通道5的采样时间
ADC1->SMPR2&=~(7<<(3*5));//通道5采样时间清空
ADC1->SMPR2|=7<<(3*5); //通道5 480个周期提高采样时间可以提高精确度
ADC1->CR2|=1<<0; //开启AD转换器
}
//获得ADC值
//ch:通道值 0~16
//返回值:转换结果
u16 Get_Adc(u8 ch)
{
//设置转换序列
ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch
ADC1->SQR3|=ch;
ADC1->CR2|=1<<30; //启动规则转换通道
while(!(ADC1->SR&1<<1));//等待转换结束
return ADC1->DR; //返回adc值
}
//获取通道ch的转换值,取10次冒泡排序,掐头去尾,取平均
u16 Get_Adc_Average(u8 ch)
{
u8 ij;
u16 buff[10]={0};
u16 temp;
for(i=0;i<10;i++)
{
buff[i]=Get_Adc(ch); //读取转换结果
}
/* 把读取值的数据按从小到大的排列 */
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(buff[j]>buff[j+1])
{
temp = buff[j];
buff[j] = buff[j+1];
buff[j+1] = temp;
}
}
}
/* 求平均值 */
temp=0;
for(i=1;i<9;i++)
{
temp+=buff[i];
}
return temp/8;
}
- 上一篇:后台根据时间段查询插件
- 下一篇:USB转CAN总线
相关资源
- STM32F207 串口1 2 DMA源码34普通串口
- STM32F030/SX1278扩频Lora无线模块收发测试
- STM32使用FIR滤波器的详细过程
- PID算法控制电机转速
- STM32F103的LoRa模块驱动源代码
- 思岚激光雷达小车程序stm32程序
- STM32F207 串口通讯程序
- OLED 091 12832 I2C STM32 驱动
- 基于STM32F4xx,MS5611气压传感器使用S
- STM32库函数代码生成器V1.2 无限制版
- STM32F103C8T6+ENC28J60+UIP1.0整个工程打包
- STM32F103C8T6移植OV7670带FIFO摄像头
- Keil.STM32L4xx_DFP.2.3.0.pack
- STM32F407贪吃蛇游戏程序
- STM32文件系统 SD卡U盘等读写程序
- 基于STM32的SIM800程序
- STM32F1x ADC三通道连续转换完整工程代
- STM32在马达控制中的应用 20181126
- STM32最小系统原理图 20181125
- STM32+MLX90316霍尔传感器驱动源码
- stm32+modbus项目
- STM32基于GPRS以mqtt协议与onenet通信
- stm32发送at指令 串口调试助手设置 波
- STM32使用移远NB-IOT模块BC95原理图
- STM32F205RBT6开发板资料
- 神舟III号光盘资料\\神舟三号原理图
- STM32F10x.h
- AD9959的stm32驱动
- 基于stm32f4的非接触式红外温度传感器
- MQTT_STM32_W5500
评论
共有 条评论