第一篇-stm32智能小车硬件介绍
后续章节也放这里 持续更新中,视频发布在小b站 里面。这边也会更新。
b站视频合集:
stm32智能小车v3-stm32入门教程-openmv与stm32循迹小车-stm32f103c8t6-电赛 嵌入式学习 pid控制算法 编码器电机 跟随
小b站链接:https://www.bilibili.com/video/bv16x4y1m7en/?spm_id_from=333.337.search-card.all.click&vd_source=16940ba3adbc66f0fb14e0c1d87db878
后面章节持续跟新的
第三 四章-oled使用 和串口openmv图像处理小车硬件介绍-(全网最详细)基于stm32智能小车-蓝牙遥控、避障、循迹、跟随、pid速度控制、视觉循迹、openmv与stm32通信、
第五章-pwm控制电机 开源stm32循迹小车详细制作过程(附加完全版代码)-openmv视觉循迹、红外循迹、避障跟随、超声波跟随、蓝牙遥控 m32f103c8t6、stm32cubemx
后面还有视觉、rtos等功能先不列举了,大家直接到专栏看把。
1.1-元件选型
这里给出元件列表和数量
后面每个元件使用前会给出参数等。
1.2-原理图与pcb
底板原理图
各个模块的供电电压?
模块接口引脚顺序?
如何确定使用单片机那个引脚?
stm32f103c8t6核心板原理图(可能使用不同核心板略有差异)
pcb顶层截图
不同类型线粗细
布局总线方式
1.3-焊接
pcb正面
pcb背面
然后插上元件
1.4-结构与组装
这是组装好的车体照片
然后小车安装pcb
注意电机和红外对管不要插错
1.5-测试
使用万用表蜂鸣挡 测量 电源引脚和gnd是否短路
第二章-gpio与中断
2.0-新建工程
建议选择和我一样的版本
新建一个工程
选择芯片
选择时钟源
选择调试
勾选生成独立的文件
设置保存地址
勾选这个不添加没有使用库文件可以减小工程文件大小(也可以不勾选,保持默认设置)
mdk打开工程,调低优化等级
以上是每次新建工程要做的
以后我们不在新建工程,使用之间的工程即可
2.1-点灯
这里我们点亮pc13连接的小灯
配置pc13
生成代码
生成代码后,使用mdk打开工程
在begin和end添加代码
hal_gpio_togglepin(led_gpio_port,led_pin);
hal_delay(500);
根据自己的芯片选择
烧录程序(必看 使用其中一个方法)
方法一:使用dap link
接线图
dap 在win 10 免驱动的
然后根据自己使用的工具在mdk中设置下载工具
设置下载算法
然后下载程序,复位小灯闪烁
烧录后现象
小灯每0.5秒闪烁一次
方法二:使用stlink
接线图
stlink不要接3.3v
使用stlink 前先安装驱动
双击运行
选择st-link
选择算法
然后点击编译,烧录
烧录后现象
小灯每0.5秒闪烁一次
补充可能遇到的失败情况
使用dap-link
如果我们芯片idcode是0x2 开头的那么我们需要替换一下keil 的器件包
(如果你是0x1 开头的,如果能下载可以不替换)
stm32小车相关资料v3.3.0\04使用的软件\中科芯cks芯片支持包
下面这个算法就会自动切换
使用stlink
2.2-按键
先看原理图
pb4–key1 单片机设置下拉输入-、上降沿触发
pa12–key2 单片机设置上拉输入、下降沿触发
开始配置
使能外部中断
然后生成代码
重新实现中断回调函数、编写按键检测程序
在gpio.c 中我们编写该函数
void hal_gpio_exti_callback(uint16_t gpio_pin)
{
if(gpio_pin == key1_pin){//判断一下那个引脚触发中断
//这里编写触发中断后要执行的程序
hal_gpio_togglepin(led_gpio_port,led_pin);//切换led gpio状态
}
if(gpio_pin == key2_pin){//判断一下那个引脚触发中断
//这里编写触发中断后要执行的程序
hal_gpio_togglepin(led_gpio_port,led_pin);//切换led gpio状态
}
}
把main中控制闪烁注释掉
烧录后的现象
按下key1 或者key2可以切换led灯开关状态
发表评论