DIY智能小车篇(二):功能模块之驱动、巡线、避障
前言 本篇主要针对实现小车各功能的过程中具体的实现原理、程序算法以及遇到的问题进行统一的解释与说明。至此,结合上一篇的结构模块,已经完成了该智能小车项目的所有工作,其中必然还有很多可以优化的地方,但考虑到做此项目的最终目的是更深入的理解嵌入式编程,所以此项目到此为止,要去开拓更广阔的的天地啦。 驱动控制 驱动模块PWM配置 要想实现对小车的速度控制,就需要对L298N电机驱动模块的使能引脚输入PWM波,改变占空比的大小便可以调节小车速度的快慢 该PWM配置如下: /** * @brief: 初始化PWM输出配置,利用TIM3同时输出4路PWM波,控制4个电机转速 * @param: arr-自动重装载值 psc-时钟预分频系数 * @retval NONE * @Others:GPIO_PinAFConfig函数必须分步进行复用,不能用一个复用函数并在一起,不然只有一路输出 **/ void TIM3_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3