91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 350KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-27
  • 語言: 其他
  • 標(biāo)簽: STM32??

資源簡介

基于STM32的心率傳感器設(shè)計代碼 mdk代碼完整可用 注釋充分 包含界面

資源截圖

代碼片段和文件信息

#include?“adc.h“
#include?“delay.h“ ?

//初始化ADC
//我們默認(rèn)僅開啟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復(fù)位
RCC->APB2RSTR&=~(1<<8); //復(fù)位結(jié)束 ?
ADC->CCR=3<<16; ???? //ADCCLK=PCLK2/4=84/4=21MhzADC時鐘最好不要超過36Mhz
?
ADC1->CR1=0;??? ??? //CR1設(shè)置清零
ADC1->CR2=0;??? ??//CR2設(shè)置清零
ADC1->CR1|=0<<24;?????//12位模式
ADC1->CR1|=0<<8;???? //非掃描模式

ADC1->CR2&=~(1<<1);???? //單次轉(zhuǎn)換模式
? ADC1->CR2&=~(1<<11);??? //右對齊
ADC1->CR2|=0<<28;????? //軟件觸發(fā)

ADC1->SQR1&=~(0XF<<20);
ADC1->SQR1|=0<<20;????? //1個轉(zhuǎn)換在規(guī)則序列中?也就是只轉(zhuǎn)換規(guī)則序列1? ???
//設(shè)置通道5的采樣時間
ADC1->SMPR2&=~(7<<(3*5));//通道5采樣時間清空 ??
? ADC1->SMPR2|=7<<(3*5);? ?//通道5??480個周期提高采樣時間可以提高精確度 ?
? ADC1->CR2|=1<<0; ???????//開啟AD轉(zhuǎn)換器 ??
} ??
//獲得ADC值
//ch:通道值?0~16
//返回值:轉(zhuǎn)換結(jié)果
u16?Get_Adc(u8?ch)???
{
//設(shè)置轉(zhuǎn)換序列 ?? ?
ADC1->SQR3&=0XFFFFFFE0;//規(guī)則序列1?通道ch
ADC1->SQR3|=ch; ?? ????
ADC1->CR2|=1<<30;???????//啟動規(guī)則轉(zhuǎn)換通道?
while(!(ADC1->SR&1<<1));//等待轉(zhuǎn)換結(jié)束 ? ???
return?ADC1->DR; //返回adc值
}
//獲取通道ch的轉(zhuǎn)換值,取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);????//讀取轉(zhuǎn)換結(jié)果
}

/*?把讀取值的數(shù)據(jù)按從小到大的排列?*/
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;
}











評論

共有 條評論