您好,欢迎来到星星旅游。
搜索
您的当前位置:首页stm32超声波测距程序

stm32超声波测距程序

来源:星星旅游


stm32超声波测距程序

单片机用的是STM32F103VC系列,超声波是淘宝买的一个模块,只有5个引脚,用起来很方便。

用的时候只需要其中4个脚,VCC,GND,TRIG,ECHO。 TRIG接PA8,OUT_PP模式;ECHO接PA9,IN_FLOATING模式。 ? #include \"\" #include \"\" #include \"\" ?

void Tim2_Init(void); ?

void TIM2_IRQHandler(void) {

if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)==0) GPIO_SetBits(GPIOE,GPIO_Pin_12); else

GPIO_ResetBits(GPIOE,GPIO_Pin_12); ? ?

TIM_ClearFlag(TIM2, TIM_FLAG_Update); } ?

int main(void) {

u16 count; float length; BSP_Init();

Tim2_Init();//定时器初始化函数 LCM_Init(); delay_nms(5);

GPIO_ResetBits(GPIOA,GPIO_Pin_8);

Display_List_Char(1,0,\"distance:\"); //PA8:Trig PA0:Echo ? while (1) {

GPIO_SetBits(GPIOA,GPIO_Pin_8);

delay_nus(20);//拉高超过10us,发射超声波 GPIO_ResetBits(GPIOA,GPIO_Pin_8); ?

TIM2->CNT=0;//计数器清0

while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)==0);//等待ECHO脚高电平 ?

TIM_Cmd(TIM2, ENABLE);// TIM2 enable counter [允许tim2计数] ?

while((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)==1)&&(TIM2->CNTARR-10)); ?

TIM_Cmd(TIM2, DISABLE); ?

count=TIM2->CNT;//ECHO脚低电平后读取计数器的值,从而算出往返时间 length=count/;

Display_List_Char(1,9,\" \"); Display_List_Float(1,9,length); delay_nms(200); } } ?

void Tim2_Init(void) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; ?

TIM_DeInit(TIM2);//复位TIM2定时器

= 49999; = 71; = 0x0;

= TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure); ?

TIM_ClearFlag(TIM2, TIM_FLAG_Update); ?

TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); }

精心搜集整理,只为你的需要

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务