日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]注意:定義GPIOB2為超聲輸出;GPIOB10為輸入,定時器用tim2///////////////////////////////////////////////////.CPP文件/////////////////////////////////////////////////////#include "HCSR04.h"#include "dela

注意:定義GPIOB2為超聲輸出;GPIOB10為輸入,定時器用tim2

///////////////////////////////////////////////////.CPP文件/////////////////////////////////////////////////////

#include "HCSR04.h"

#include "delay.h"
#include "sys.h"
int overcount;
float length=0;
void HCSR04_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);

TIM_DeInit(TIM2);
TIM_TimeBaseInitStructer.TIM_Period=4999;
TIM_TimeBaseInitStructer.TIM_Prescaler=7199;
TIM_TimeBaseInitStructer.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStructer.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructer);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_ITConfig(
TIM2,
TIM_IT_Update |
TIM_IT_Trigger,
ENABLE
);


TIM_ClearFlag(TIM2,TIM_FLAG_Update);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM2,DISABLE);


}

float HCSR04_Read()
{
float sum=0,length1=0;
u8 i=0,j=0;
u16 tim;
{
// while(i!=5)
for(i=0;i<5;i++)
{
PBout(2)=1;
delay_us(20);
PBout(2)=0;
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==RESET);
TIM_SetCounter(TIM2,0);
TIM_Cmd(TIM2,ENABLE);


while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==SET);
TIM_Cmd(TIM2,DISABLE);
tim=TIM2->CNT;
length1=tim/58.0*100;
TIM2->CNT=0;
sum+=length1;
}

}
length=sum/5;
sum=0;
return length;


}


///////////////////////////////////////////////////.h文件//////////////////////////////////////////////////////////////////

#include "stm32f10x_lib.h"


#define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //ê?3?
#define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //ê?è?
extern float HCSR04_Read();
extern void HCSR04_init();
//extern void HC_RS04_Init();


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉