源码分析--红外避障&红外寻迹(HAL库)

本文详细介绍了基于STM32F103C8T6单片机的红外避障和寻迹功能实现。通过元器件选择、GPIO分配及主函数讲解,阐述了避障和寻迹的逻辑控制,包括根据红外传感器检测结果进行的转向和行驶策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、功能实现

1、红外避障:单片机通过安装在小车前端两侧的红外避障模块检测障碍物与小车间的距离,加以判断实现避障功能。
2、红外寻迹:单片机通过安装在小车底盘两侧的红外寻迹模块检测黑线与小车的相对位置,加以判断实现寻迹功能。

二、元器件选择

2.1单片机型号选择
单片机选择STM32F103C8T6,此款单片机有48个引脚,72M主频,64K Flash、20K RAM,3个普通定时器,1个高级定时器,2个SPI,2个I²C,3个串口,1个USB,1个CAN,37个可使用IO口,2个12位10通道ADC。
如此丰富的内设硬件资源足以应付大多数场合使用,相对于STM32F103同系列其他单片具有机性价比高,网络资源多、例程丰富,适合STM32入门初探与产品设计应用。

GPIO分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

main函数(按照main函数内顺序讲解)

int main(void)
{
   
  /* 复位所有外设,初始化Flash接口和系统滴答定时器 */
  HAL_Init();
  /* 配置系统时钟 */
  SystemClock_Config();
	
/**************GPIO******************************************************************/
	GPIOA_Init();//初始化L298N接口
	GPIOB_Init();//初始化寻迹和红外避障模块接口

/***************PWM******************************************************************/	
	 /* 通用定时器初始化并配置PWM输出功能 */
  GENERAL_TIMx_Init();
  
  /* 启动通道PWM输出 */
  HAL_TIM_PWM_Start(&htimx,TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htimx,TIM_CHANNEL_2);
	TIM3->CCR1=TIM3->CCR2=250;//调车速,范围0~1000,数值越大速度越快
	
/* 无限循环 */
  while (1)
  {
   	
//		Avoid();//避障
		Track();//寻迹
	}

}

1.首先复位所有外设,初始化Flash接口和系统滴答定时器
2.其次配置系统时钟(对如何配置系统时钟感兴趣的可以见文章最下方链接)
3.配置GPIOA和B

void GPIOA_Init(void)
{
   
   /* 定义IO硬件初始化结构体变量 */
  GPIO_InitTypeD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值