当前位置: 首页> 汽车> 车展 > 长治网站建设_各大企业官网_常州网站关键词推广_怎样看网页的友情链接

长治网站建设_各大企业官网_常州网站关键词推广_怎样看网页的友情链接

时间:2025/7/9 3:53:30来源:https://blog.csdn.net/ElePower9527/article/details/145953822 浏览次数: 0次
长治网站建设_各大企业官网_常州网站关键词推广_怎样看网页的友情链接

1. 实验目标

  • 使用STM32 HAL库和定时器实现超声波测距功能。

  • 当超声波模块前方障碍物距离 < 10cm 时,点亮板载LED。


2. 硬件准备

硬件模块说明
STM32开发板STM32F103C8T6
HC-SR04模块超声波测距模块
杜邦线若干连接模块与开发板

3. 硬件连接

HC-SR04引脚STM32引脚备注
VCC3.3V
TrigPA0GPIO_Output
EchoPA8GPIO_Input(建议串联1kΩ电阻)
GNDGND

4. STM32CubeMX配置

  • GPIO配置

  • 定时器配置TIM1

  • 设置通道模式参数

  • 设置通道参数

  • 设置板载LED参数

  • 设置时基单元参数

5.代码实现

功能流程分析

while (1){//1.CNT归零__HAL_TIM_SET_COUNTER(&htim1,0);//1.CC1,CC2清除__HAL_TIM_CLEAR_FLAG(&htim1,TIM_FLAG_CC1);__HAL_TIM_CLEAR_FLAG(&htim1,TIM_FLAG_CC2);//2.启动输入捕获HAL_TIM_IC_Start(&htim1,TIM_CHANNEL_1);HAL_TIM_IC_Start(&htim1,TIM_CHANNEL_2);//3.向Trig发送脉冲HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);for(uint32_t i = 0;i < 10;i++);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);//4.等待测量结束uint8_t success = 0; // 测量是否成功,0 - 失败,1 - 成功uint32_t expireTime =  HAL_GetTick()+50; //最长等待时间while(expireTime > HAL_GetTick()){uint32_t cc1Flag = __HAL_TIM_GET_FLAG(&htim1, TIM_FLAG_CC1);uint32_t cc2Flag = __HAL_TIM_GET_FLAG(&htim1, TIM_FLAG_CC2);if(cc1Flag && cc2Flag){success = 1;break;}}//5.关闭定时器HAL_TIM_IC_Stop(&htim1,TIM_CHANNEL_1);HAL_TIM_IC_Stop(&htim1,TIM_CHANNEL_2);//6.计算测量结果if(success == 1){uint16_t ccr1 = __HAL_TIM_GET_COMPARE(&htim1, TIM_CHANNEL_1);uint16_t ccr2 = __HAL_TIM_GET_COMPARE(&htim1, TIM_CHANNEL_2);float pulseWidth = (ccr2 - ccr1) * 1e-6f;float distance = 340.0f * pulseWidth / 2.0f;if(distance < 0.2){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);}}}}

6.代码解析

关键字:长治网站建设_各大企业官网_常州网站关键词推广_怎样看网页的友情链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: