HAL库STM32F103C8T6超声波测距

本文详细介绍了如何使用HAL库在STM32F103C8T6上实现HC-SR04超声波测距模块的配置和测量。主要涉及了RCC和USART的配置,以及TIM的中断回调函数实现测距。在代码中,通过TRIG引脚发送触发脉冲,并通过ECHO引脚捕获回波时间,计算并输出距离。遇到的问题包括测量值始终为0、串口打印问题等,解决办法包括检查代码和硬件连接。
  • HAL库
  • STM32F103C8T6主控芯片
  • HC-SR04超声波测距模块

参考文章,十分感谢原作者
手把手教你,通过HAL库实现STM32的超声波测距–以SR-04为例

工程源码

源码下载

基本配置

  1. 配置sys
    在这里插入图片描述
  2. 配置RCC

在这里插入图片描述

  1. 配置USART 用来串口输出,注意波特率
    在这里插入图片描述
  2. 配置时钟,将超声波测距模块的ECHO引脚设置为PB11,通道4,计数值和模式如下
    在这里插入图片描述
  3. 配置时钟
    在这里插入图片描述

代码编写

  1. time.c 在/* USER CODE BEGIN 1 */处编写,防止重新配置芯片的时候覆盖写好的代码
/* USER CODE BEGIN 1 */
//溢出回调函数和捕获回调函�?
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
   
   
	if((TIM2CH2_CAPTURE_STA & 0x80)==0)	// 还未捕获成功
	{
   
   
		if(TIM2CH2_CAPTURE_STA & 0x40)	// 捕获到一个下降沿
		{
   
   
			if((TIM2CH2_CAPTURE_STA & 0x3F) == 0x3F)	// 高电平的时间太长�?
			{
   
   
				TIM2CH2_CAPTURE_STA |= 0X80;	// 标记为成功捕获一�?
				TIM2CH2_CAPTURE_VAL = 0XFFFF
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向大佬看齐·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值