完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "HC_SR04.h"
volatile float Distance=0.0f; void Wave_SRD_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_AFIO_CLK_ENABLE(); SRD_GPIO_CLK_ENABLE(); GPIO_InitStruct.Pin = SRD_trig; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(SRD_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = SRD_echo; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(SRD_GPIO_PORT, &GPIO_InitStruct); HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); } static void SRD_Delay(uint16_t time) { u16 i=0; while(time--) { i=10; while(i--) ; } } void Wave_SRD_Strat(void) { HAL_GPIO_WritePin(SRD_GPIO_PORT,SRD_trig,GPIO_PIN_SET); SRD_Delay(50); HAL_GPIO_WritePin(SRD_GPIO_PORT,SRD_trig,GPIO_PIN_RESET); } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { HAL_TIM_Base_Start_IT(&htimx); while(!HAL_GPIO_ReadPin(SRD_GPIO_PORT,SRD_echo)); HAL_TIM_Base_Stop_IT(&htimx); Distance=(__HAL_TIM_GET_COUNTER(&htimx)+msHcCount*1000)*0.17; __HAL_TIM_SET_COUNTER(&htimx,0); msHcCount=0; MF_CLR_FLAG(SystemFlag,SYS_CheckSRD); __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); } ********************************************************************* void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { msHcCount++ ; } ********************************************************************* #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT) ********************************************************************* Wave_SRD_Init(); ********************************************************************* Wave_SRD_Strat();//开始工作。 只显示0.17和0.34两个数据 |
|
相关推荐
3个回答
|
|
而且这两个数据的显示跟距离远近没有关系。。。
|
|
|
|
{:16:}{:16:}{:16:}{:16:}{:16:}{:16:}
|
|
|
|
你的距离转换函数有点怪啊,建议看下网上STM32用这个超声波测距模块的例程
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1049 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1017 浏览 2 评论
2123 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1219 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1639 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 17:33 , Processed in 0.699569 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号